]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
change config with strdup
authorBastian Dehn <hhaalo@arcor.de>
Mon, 3 Feb 2025 19:51:57 +0000 (20:51 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Mon, 3 Feb 2025 19:51:57 +0000 (20:51 +0100)
src/kds_s2000w_client.c
src/kds_s2000w_config.c
src/kds_s2000w_config.h
tests/kds_s2000w_read_config_tests.c

index bf441ba9edf7da0655a0e84789646ba4ca039783..ae96bcb06e46db2eeb6fc065c7505b30e39e43f5 100644 (file)
@@ -76,7 +76,7 @@ void kds_s2000w_client_init()
        kds_s2000w_debug_printf(ALL, "kds_s2000w_client_init");
 
        char* config_stream = kds_s2000w_config_read(CONFIG_FILE);
-       config = kds_s2000w_load_config(config_stream);
+       config = kds_s2000w_config_load(config_stream);
        curl_global_init(CURL_GLOBAL_ALL);
        curl = curl_easy_init();
        errbuf = malloc(CURL_ERROR_SIZE);
index 3c25c46be385ce059e75ab27ead4ae9c0c9a3be9..e6ddcb9b3530e7e0dbc0ccfcc1d1bb86715b06f7 100644 (file)
@@ -3,12 +3,20 @@
 #include <confuse.h>
 #include "kds_s2000w_config.h"
 
-void _kds_s2000w_copy_config_string_to_config_value(cfg_t* cfg, const char* key, char** config_value)
+void _kds_s2000w_config_copy_string_to_config_value(cfg_t* cfg, const char* key, char** config_value)
 {
+       free(*config_value);
+       *config_value = NULL;
+
        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);
+       *config_value = strdup(value_str);
+}
+
+void _kds_s2000w_config_set_log_level(int log_level)
+{
+       char log_level_str[2];
+       snprintf(log_level_str, 2, "%i", log_level);
+       setenv("KDS_S2000W_NET_DEBUG", log_level_str, 0);
 }
 
 char* kds_s2000w_config_read(const char* filename)
@@ -40,17 +48,7 @@ char* kds_s2000w_config_read(const char* filename)
        return config_string;
 }
 
-void kds_s2000w_config_free(program_config* config)
-{
-       free(config->scanner_url);
-       config->scanner_url = NULL;
-       free(config->username);
-       config->username = NULL;
-       free(config);
-       config = NULL;
-}
-
-program_config* kds_s2000w_load_config(char* config_string)
+program_config* kds_s2000w_config_load(char* config_string)
 {
        program_config* config = malloc(sizeof(program_config));
        config->scanner_url = malloc(sizeof(char));
@@ -77,13 +75,13 @@ program_config* kds_s2000w_load_config(char* config_string)
 
        cfg_t* cfg = cfg_init(opts, 0);
        cfg_parse_buf(cfg, config_string);
-       _kds_s2000w_copy_config_string_to_config_value(cfg, "scanner_url", &config->scanner_url);
-       _kds_s2000w_copy_config_string_to_config_value(cfg, "username", &config->username);
+
+       _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);
 
        config->log_level = cfg_getint(cfg, "default_log_level");
-       char log_level_str[2];
-       snprintf(log_level_str, 2, "%i", config->log_level);
-       setenv("KDS_S2000W_NET_DEBUG", log_level_str, 0);
+       _kds_s2000w_config_set_log_level(config->log_level);
+
        config->heartbeat = cfg_getint(cfg, "heartbeat_seconds");
        if (config->heartbeat < 1)
                config->heartbeat = 1;
@@ -94,4 +92,14 @@ program_config* kds_s2000w_load_config(char* config_string)
        cfg = NULL;
 
        return config;
+}
+
+void kds_s2000w_config_free(program_config* config)
+{
+       free(config->scanner_url);
+       config->scanner_url = NULL;
+       free(config->username);
+       config->username = NULL;
+       free(config);
+       config = NULL;
 }
\ No newline at end of file
index 121101fa5e53e981bdec36b8070b6831bbd64b97..beec3e15943e21322af2d810930109663a5bf114 100644 (file)
@@ -11,6 +11,7 @@ typedef struct {
 
 char* kds_s2000w_config_read(const char* filename);
 
-program_config* kds_s2000w_load_config(char* config_stream);
+program_config* kds_s2000w_config_load(char* config_stream);
 void kds_s2000w_config_free(program_config* config);
+
 #endif
\ No newline at end of file
index c98b24ef64df7674d452e742d9bb1db02d91ea23..911082e714793a8dddc9c45563e58c14fcadda68 100644 (file)
@@ -5,7 +5,7 @@
 
 void kds_s2000w_config_null_test()
 {
-       program_config* config = kds_s2000w_load_config(NULL);
+       program_config* config = kds_s2000w_config_load(NULL);
 
        assert_non_null(config);
        assert_string_equal(config->scanner_url, "");
@@ -19,7 +19,7 @@ void kds_s2000w_config_null_test()
 
 void kds_s2000w_config_read_empty_config_test()
 {
-       program_config* config = kds_s2000w_load_config("");
+       program_config* config = kds_s2000w_config_load("");
 
        assert_non_null(config);
        assert_string_equal(config->scanner_url, "");
@@ -35,7 +35,7 @@ void kds_s2000w_config_read_parameter_test()
 {
        char* input_stream = "   scanner_url   =   http://scanner.example.com    \n";
 
-       program_config* config = kds_s2000w_load_config(input_stream);
+       program_config* config = kds_s2000w_config_load(input_stream);
 
        assert_string_equal(config->scanner_url, "http://scanner.example.com");
 
@@ -47,7 +47,7 @@ void kds_s2000w_config_read_parameters_without_trim_test()
 {
        char* input_stream = "scanner_url=http://scanner.example.com\n";
 
-       program_config* config = kds_s2000w_load_config(input_stream);
+       program_config* config = kds_s2000w_config_load(input_stream);
 
        assert_string_equal(config->scanner_url, "http://scanner.example.com");
 
@@ -59,7 +59,7 @@ void kds_s2000w_config_multiple_parameters_test()
 {
        char* input_stream = "scanner_url=http://scanner.example.com\nusername=Mustermann\n";
 
-       program_config* config = kds_s2000w_load_config(input_stream);
+       program_config* config = kds_s2000w_config_load(input_stream);
 
        assert_string_equal(config->scanner_url, "http://scanner.example.com");
        assert_string_equal(config->username, "Mustermann");
@@ -72,7 +72,7 @@ void kds_s2000w_config_heartbeat_five_seconds_test()
 {
        char* input_stream = "heartbeat_seconds = 5\n";
 
-       program_config* config = kds_s2000w_load_config(input_stream);
+       program_config* config = kds_s2000w_config_load(input_stream);
 
        assert_int_equal(config->heartbeat, 5);
 
@@ -84,7 +84,7 @@ void kds_s2000w_config_default_heartbeat_zero_set_default_test()
 {
        char* input_stream = "heartbeat_seconds = 0\n";
 
-       program_config* config = kds_s2000w_load_config(input_stream);
+       program_config* config = kds_s2000w_config_load(input_stream);
 
        assert_int_equal(config->heartbeat, 1);
 
@@ -96,7 +96,7 @@ void kds_s2000w_config_ssl_verify_on_test()
 {
        char* input_stream = "ssl_verify = true\n";
 
-       program_config* config = kds_s2000w_load_config(input_stream);
+       program_config* config = kds_s2000w_config_load(input_stream);
 
        assert_int_equal(config->ssl_verify, 1);