#include <confuse.h>
#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);
{
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;
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;
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)