]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
change refactor load config
authorBastian Dehn <hhaalo@arcor.de>
Mon, 22 Sep 2025 15:04:41 +0000 (17:04 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Mon, 22 Sep 2025 15:04:41 +0000 (17:04 +0200)
src/kds_s2000w_config.c

index 10f5919eeadc575b9300db819c1731dd212a6ffa..f0022a3b359ba2aaaea4881060dbd2b53ab6bf41 100644 (file)
@@ -3,16 +3,32 @@
 #include <confuse.h>
 #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;