From a360e237ecc1181d3009c2280606b2840cbdeac6 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Thu, 2 Jan 2025 18:32:46 +0100 Subject: [PATCH] add config value copy method --- src/kds_s2000w_config.c | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/src/kds_s2000w_config.c b/src/kds_s2000w_config.c index 6345ce1..567582f 100644 --- a/src/kds_s2000w_config.c +++ b/src/kds_s2000w_config.c @@ -3,6 +3,14 @@ #include #include "kds_s2000w_config.h" +void _copy_config_string_to_config_value(cfg_t* cfg, const char* key, char** config_value) +{ + char* value_str = cfg_getstr(cfg, key); + size_t str_len = strlen(value_str) + 1; + *config_value = realloc(*config_value, sizeof(char) * str_len); + memcpy(*config_value, value_str, str_len); +} + void free_config(program_config* config) { free(config->scanner_url); @@ -46,8 +54,8 @@ program_config* load_config(const char* config_string) { program_config* config = malloc(sizeof(program_config)); config->scanner_url = malloc(sizeof(char)); - *config->scanner_url = '\0'; config->username = malloc(sizeof(char)); + *config->scanner_url = '\0'; *config->username = '\0'; config->heartbeat = 1; config->ssl_verify = 0; @@ -55,10 +63,6 @@ program_config* load_config(const char* config_string) if (config_string == NULL) return config; - cfg_t* cfg = NULL; - char* value_str = NULL; - size_t str_length = 0; - if (strlen(config_string) <= 0) return config; @@ -70,19 +74,10 @@ program_config* load_config(const char* config_string) CFG_END() }; - cfg = cfg_init(opts, 0); - + cfg_t* cfg = cfg_init(opts, 0); cfg_parse_buf(cfg, config_string); - - value_str = cfg_getstr(cfg, "scanner_url"); - str_length = strlen(value_str) + 1; - config->scanner_url = realloc(config->scanner_url, sizeof(char) * str_length); - memcpy(config->scanner_url, value_str, str_length); - - value_str = cfg_getstr(cfg, "username"); - str_length = strlen(value_str) + 1; - config->username = realloc(config->username, sizeof(char) * str_length); - memcpy(config->username, value_str, str_length); + _copy_config_string_to_config_value(cfg, "scanner_url", &config->scanner_url); + _copy_config_string_to_config_value(cfg, "username", &config->username); config->heartbeat = cfg_getint(cfg, "heartbeat_seconds"); if (config->heartbeat < 1) -- 2.39.5