59 lines
1.3 KiB
C
59 lines
1.3 KiB
C
/******************************************************************************
|
|
*
|
|
* Copyright (c) 2017-2019 by Löwenware Ltd
|
|
* Please, refer LICENSE file for legal information
|
|
*
|
|
******************************************************************************/
|
|
|
|
/**
|
|
* @file config.c
|
|
* @author Ilja Kartašov <ik@lowenware.com>
|
|
* @brief
|
|
*
|
|
* @see https://lowenware.com/
|
|
*/
|
|
|
|
#include <cStuff/config.h>
|
|
#include "log.h"
|
|
#include "config.h"
|
|
|
|
|
|
static int
|
|
config_callback(struct cstuff_config *cfg, void *u_ptr)
|
|
{
|
|
switch(cfg->evt) {
|
|
case CSTUFF_CONFIG_NODE:
|
|
LOG_STATE("node: %s(%d)", cfg->data.node.name, cfg->data.node.name_len);
|
|
return 0;
|
|
case CSTUFF_CONFIG_PAIR:
|
|
LOG_STATE("node: %s(%d)->%s(%d)", cfg->data.pair.key,
|
|
cfg->data.pair.key_len, cfg->data.pair.val,
|
|
cfg->data.pair.val_len);
|
|
return 0;
|
|
case CSTUFF_CONFIG_ERROR:
|
|
LOG_ERROR("config error at line %d:%d - %s", cfg->line_num,
|
|
cfg->data.error.char_num, cfg->data.error.err_txt);
|
|
break;
|
|
default:
|
|
LOG_ERROR("event unknown: %d", cfg->evt);
|
|
}
|
|
|
|
(void) u_ptr;
|
|
return -1;
|
|
}
|
|
|
|
|
|
int
|
|
config_read(void)
|
|
{
|
|
const char cfg_file[] = ARC_CONFIG_FILE;
|
|
|
|
if (!cstuff_config_parse(cfg_file, config_callback, NULL)) {
|
|
return 0;
|
|
}
|
|
LOG_ERROR("configuration failed");
|
|
|
|
return -1;
|
|
}
|
|
|