From f2a0379c2eec2df4597c03677e4efc7838440e1c Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Wed, 1 Jan 2025 15:47:32 +0100 Subject: [PATCH] change load config in client --- src/kds_s2000w_client.c | 32 ++++++++++++++++++-------------- src/kds_s2000w_config.c | 10 +++++++++- src/kds_s2000w_config.h | 3 +-- 3 files changed, 28 insertions(+), 17 deletions(-) diff --git a/src/kds_s2000w_client.c b/src/kds_s2000w_client.c index 2ca1cee..0119655 100644 --- a/src/kds_s2000w_client.c +++ b/src/kds_s2000w_client.c @@ -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); diff --git a/src/kds_s2000w_config.c b/src/kds_s2000w_config.c index 97c90fd..b979648 100644 --- a/src/kds_s2000w_config.c +++ b/src/kds_s2000w_config.c @@ -3,7 +3,15 @@ #include #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) { diff --git a/src/kds_s2000w_config.h b/src/kds_s2000w_config.h index f3d0c42..d56557e 100644 --- a/src/kds_s2000w_config.h +++ b/src/kds_s2000w_config.h @@ -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 -- 2.39.5