From: Bastian Dehn Date: Mon, 22 Sep 2025 15:04:41 +0000 (+0200) Subject: change refactor load config X-Git-Tag: v1.1.5^2~2 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=ba96c930aa9ec8752137c946c0af50ffebf83df0;p=sane-kds-s2000w-net.git change refactor load config --- diff --git a/src/kds_s2000w_config.c b/src/kds_s2000w_config.c index 10f5919..f0022a3 100644 --- a/src/kds_s2000w_config.c +++ b/src/kds_s2000w_config.c @@ -3,16 +3,32 @@ #include #include "kds_s2000w_config.h" -void _kds_s2000w_config_copy_string_to_config_value(cfg_t* cfg, const char* key, char** config_value) +#define SCANNER_URL "scanner_url" +#define USERNAME "username" +#define DEFAULT_LOG_LEVEL "default_log_level" +#define HEARTBEAT_SECONDS "heartbeat_seconds" +#define SSL_VERIFY "ssl_verify" + +program_config* _kds_s2000w_config_init() { - free(*config_value); - *config_value = NULL; + program_config* config = malloc(sizeof(program_config)); + config->scanner_url = malloc(sizeof(char)); + config->username = malloc(sizeof(char)); + *config->scanner_url = 0; + *config->username = 0; + config->log_level = 0; + config->heartbeat = 1; + config->ssl_verify = 0; + + return config; +} +char* _kds_s2000w_config_copy_string_to_config_value(cfg_t* cfg, const char* key) +{ char* value_str = cfg_getstr(cfg, key); + char* new_str = malloc(sizeof(char) * strlen(value_str) + 1); - size_t size_str = strlen(value_str) + 1; - *config_value = malloc(size_str); - memcpy(*config_value, value_str, size_str); + return strcpy(new_str, value_str); } char* kds_s2000w_config_read(const char* filename) @@ -38,14 +54,7 @@ char* kds_s2000w_config_read(const char* filename) program_config* kds_s2000w_config_load(char* config_string) { - program_config* config = malloc(sizeof(program_config)); - config->scanner_url = malloc(sizeof(char)); - config->username = malloc(sizeof(char)); - *config->scanner_url = 0; - *config->username = 0; - config->log_level = 0; - config->heartbeat = 1; - config->ssl_verify = 0; + program_config* config = _kds_s2000w_config_init(); if (config_string == NULL) return config; @@ -54,26 +63,31 @@ program_config* kds_s2000w_config_load(char* config_string) return config; cfg_opt_t opts[] = { - CFG_STR("scanner_url", "", CFGF_NONE), - CFG_STR("username", "", CFGF_NONE), - CFG_INT("default_log_level", 0, CFGF_NONE), - CFG_INT("heartbeat_seconds", 1, CFGF_NONE), - CFG_BOOL("ssl_verify", 0, CFGF_NONE), + CFG_STR(SCANNER_URL, "", CFGF_NONE), + CFG_STR(USERNAME, "", CFGF_NONE), + CFG_INT(DEFAULT_LOG_LEVEL, 0, CFGF_NONE), + CFG_INT(HEARTBEAT_SECONDS, 1, CFGF_NONE), + CFG_BOOL(SSL_VERIFY, 0, CFGF_NONE), CFG_END() }; cfg_t* cfg = cfg_init(opts, 0); cfg_parse_buf(cfg, config_string); - _kds_s2000w_config_copy_string_to_config_value(cfg, "scanner_url", &config->scanner_url); - _kds_s2000w_config_copy_string_to_config_value(cfg, "username", &config->username); + free(config->scanner_url); + config->scanner_url = NULL; + config->scanner_url = _kds_s2000w_config_copy_string_to_config_value(cfg, SCANNER_URL); + + free(config->username); + config->username = NULL; + config->username = _kds_s2000w_config_copy_string_to_config_value(cfg, USERNAME); - config->log_level = cfg_getint(cfg, "default_log_level"); - config->heartbeat = cfg_getint(cfg, "heartbeat_seconds"); + config->log_level = cfg_getint(cfg, DEFAULT_LOG_LEVEL); + config->heartbeat = cfg_getint(cfg, HEARTBEAT_SECONDS); if (config->heartbeat < 1) config->heartbeat = 1; - config->ssl_verify = cfg_getbool(cfg, "ssl_verify"); + config->ssl_verify = cfg_getbool(cfg, SSL_VERIFY); cfg_free(cfg); cfg = NULL;