]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
change load config in client
authorBastian Dehn <hhaalo@arcor.de>
Wed, 1 Jan 2025 14:47:32 +0000 (15:47 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Wed, 1 Jan 2025 14:47:32 +0000 (15:47 +0100)
src/kds_s2000w_client.c
src/kds_s2000w_config.c
src/kds_s2000w_config.h

index 2ca1cee7b6ae02d731ad8bdc300dbf869bae5e13..011965505afe5f774a38d523a19cb5641a6f94e6 100644 (file)
@@ -23,6 +23,7 @@
 #define CONFIGURATION_PATH "/api/session/configuration"
 
 CURL* curl = NULL;
+program_config* config = NULL;
 
 void _kds_s2000w_client_read_error_status(CURL* curl, response* resp)
 {
@@ -45,7 +46,8 @@ void _kds_s2000w_client_load_config()
        if (config_stream == NULL)
                return;
 
-       load_config(&p_config, config_stream);
+       config = malloc(sizeof(program_config));
+       load_config(config, config_stream);
 
        free(config_stream);
        config_stream = NULL;
@@ -72,7 +74,7 @@ void _kds_s2000w_client_print_error_result(CURLcode result)
 
 void _kds_s2000w_client_set_ssl_verification_off(CURL* curl)
 {
-       if (p_config.ssl_verify)
+       if (config->ssl_verify)
                return;
 
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
@@ -120,6 +122,8 @@ void kds_s2000w_client_free()
 {
        debug_printf(ALL, "kds_s2000w_client_free");
 
+       free(config);
+       config = NULL;
        curl_easy_cleanup(curl);
        curl = NULL;
 }
@@ -132,7 +136,7 @@ int kds_s2000w_client_open_session(response* response)
 
        char* url = NULL;
        CURLU* url_handler = curl_url();
-       curl_url_set(url_handler, CURLUPART_URL, p_config.scanner_url, 0);
+       curl_url_set(url_handler, CURLUPART_URL, config->scanner_url, 0);
        curl_url_set(url_handler, CURLUPART_PATH, SESSION_PATH, 0);
        curl_url_get(url_handler, CURLUPART_URL, &url, 0);
        curl_easy_setopt(curl, CURLOPT_URL, url);
@@ -149,7 +153,7 @@ int kds_s2000w_client_open_session(response* response)
 
        char* body = malloc(sizeof(char) * MAX_STR_BUFFER_LENGTH);
        memset(body, 0, MAX_STR_BUFFER_LENGTH);
-       sprintf(body, "{\"OCPUserName\": \"%s\"}", p_config.username);
+       sprintf(body, "{\"OCPUserName\": \"%s\"}", config->username);
        curl_easy_setopt(curl, CURLOPT_POST, 1L);
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, body);
        _kds_s2000w_client_set_ssl_verification_off(curl);
@@ -188,7 +192,7 @@ void kds_s2000w_client_close_session(int64_t sessionid)
 
        char* url = NULL;
        CURLU* url_handler = curl_url();
-       curl_url_set(url_handler, CURLUPART_URL, p_config.scanner_url, 0);
+       curl_url_set(url_handler, CURLUPART_URL, config->scanner_url, 0);
        curl_url_set(url_handler, CURLUPART_PATH, SESSION_PATH, 0);
        curl_url_get(url_handler, CURLUPART_URL, &url, 0);
        curl_easy_setopt(curl, CURLOPT_URL, url);
@@ -224,13 +228,13 @@ int kds_s2000w_client_status_session(int64_t sessionid, response* response)
        debug_printf(ALL, "kds_s2000w_client_status_session");
 
        join_thread();
-       wait_seconds(&p_config.heartbeat);
+       wait_seconds(&config->heartbeat);
 
        curl_easy_reset(curl);
 
        char* url = NULL;
        CURLU* url_handler = curl_url();
-       curl_url_set(url_handler, CURLUPART_URL, p_config.scanner_url, 0);
+       curl_url_set(url_handler, CURLUPART_URL, config->scanner_url, 0);
        curl_url_set(url_handler, CURLUPART_PATH, STATUS_PATH, 0);
        curl_url_get(url_handler, CURLUPART_URL, &url, 0);
        curl_easy_setopt(curl, CURLOPT_URL, url);
@@ -286,7 +290,7 @@ int kds_s2000w_client_start_scan(int64_t sessionid, response* response)
 
        char* url = NULL;
        CURLU* url_handler = curl_url();
-       curl_url_set(url_handler, CURLUPART_URL, p_config.scanner_url, 0);
+       curl_url_set(url_handler, CURLUPART_URL, config->scanner_url, 0);
        curl_url_set(url_handler, CURLUPART_PATH, STARTSCAN_PATH, 0);
        curl_url_get(url_handler, CURLUPART_URL, &url, 0);
        curl_easy_setopt(curl, CURLOPT_URL, url);
@@ -343,7 +347,7 @@ int kds_s2000w_client_stop_scan(int64_t sessionid, response* response)
 
        char* url = NULL;
        CURLU* url_handler = curl_url();
-       curl_url_set(url_handler, CURLUPART_URL, p_config.scanner_url, 0);
+       curl_url_set(url_handler, CURLUPART_URL, config->scanner_url, 0);
        curl_url_set(url_handler, CURLUPART_PATH, STOPSCAN_PATH, 0);
        curl_url_get(url_handler, CURLUPART_URL, &url, 0);
        curl_easy_setopt(curl, CURLOPT_URL, url);
@@ -403,7 +407,7 @@ int kds_s2000w_client_get_image(int64_t sessionid, int img_number, response* res
        char* url_path = malloc(sizeof(char) * MAX_STR_BUFFER_LENGTH);
        memset(url_path, 0, MAX_STR_BUFFER_LENGTH);
        sprintf(url_path, "%s/%i", IMAGE_PATH, img_number);
-       curl_url_set(url_handler, CURLUPART_URL, p_config.scanner_url, 0);
+       curl_url_set(url_handler, CURLUPART_URL, config->scanner_url, 0);
        curl_url_set(url_handler, CURLUPART_PATH, url_path, 0);
        curl_url_get(url_handler, CURLUPART_URL, &url, 0);
        curl_easy_setopt(curl, CURLOPT_URL, url);
@@ -464,7 +468,7 @@ int kds_s2000w_client_delete_image(int64_t sessionid, int img_number, response*
        char* url_path = malloc(sizeof(char) * MAX_STR_BUFFER_LENGTH);
        memset(url_path, 0, MAX_STR_BUFFER_LENGTH);
        sprintf(url_path, "%s/%i", IMAGE_PATH, img_number);
-       curl_url_set(url_handler, CURLUPART_URL, p_config.scanner_url, 0);
+       curl_url_set(url_handler, CURLUPART_URL, config->scanner_url, 0);
        curl_url_set(url_handler, CURLUPART_PATH, url_path, 0);
        curl_url_get(url_handler, CURLUPART_URL, &url, 0);
        curl_easy_setopt(curl, CURLOPT_URL, url);
@@ -520,7 +524,7 @@ int kds_s2000w_client_get_capabilities(response* response)
 
        char* url = NULL;
        CURLU* url_handler = curl_url();
-       curl_url_set(url_handler, CURLUPART_URL, p_config.scanner_url, 0);
+       curl_url_set(url_handler, CURLUPART_URL, config->scanner_url, 0);
        curl_url_set(url_handler, CURLUPART_PATH, CAPABILITIES_PATH, 0);
        curl_url_get(url_handler, CURLUPART_URL, &url, 0);
        curl_easy_setopt(curl, CURLOPT_URL, url);
@@ -570,7 +574,7 @@ int kds_s2000w_client_get_option(int64_t sessionid, response* response)
 
        char* url = NULL;
        CURLU* url_handler = curl_url();
-       curl_url_set(url_handler, CURLUPART_URL, p_config.scanner_url, 0);
+       curl_url_set(url_handler, CURLUPART_URL, config->scanner_url, 0);
        curl_url_set(url_handler, CURLUPART_PATH, CONFIGURATION_PATH, 0);
        curl_url_get(url_handler, CURLUPART_URL, &url, 0);
        curl_easy_setopt(curl, CURLOPT_URL, url);
@@ -626,7 +630,7 @@ int kds_s2000w_client_set_option(int64_t sessionid, response* response)
 
        char* url = NULL;
        CURLU* url_handler = curl_url();
-       curl_url_set(url_handler, CURLUPART_URL, p_config.scanner_url, 0);
+       curl_url_set(url_handler, CURLUPART_URL, config->scanner_url, 0);
        curl_url_set(url_handler, CURLUPART_PATH, CONFIGURATION_PATH, 0);
        curl_url_get(url_handler, CURLUPART_URL, &url, 0);
        curl_easy_setopt(curl, CURLOPT_URL, url);
index 97c90fd585adfaf285425da5b7461f39b45e47c5..b979648f3570b2591f0ee19e58290b659b729533 100644 (file)
@@ -3,7 +3,15 @@
 #include <confuse.h>
 #include "kds_s2000w_config.h"
 
-program_config p_config;
+void free_config(program_config* config)
+{
+       free(config->scanner_url);
+       config->scanner_url = NULL;
+       free(config->username);
+       config->username = NULL;
+       free(config);
+       config = NULL;
+}
 
 char* read_config_file(const char* filename)
 {
index f3d0c429a80846700f0c0c4f67a8742a36662eb2..d56557eea6253ab12afb7c2fb2850d97577f4540 100644 (file)
@@ -8,8 +8,7 @@ typedef struct {
        int ssl_verify;
 } program_config;
 
-extern program_config p_config;
-
+void free_config(program_config* config);
 char* read_config_file(const char* filename);
 void load_config(program_config* config, const char* config_stream);
 #endif
\ No newline at end of file