From 8c2fc0a65301addee64ae270a758b02ff980c2ad Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Tue, 4 Mar 2025 18:04:46 +0100 Subject: [PATCH] add verbose curl with debug level --- src/kds_s2000w_client.c | 20 ++++++++++++++++++++ src/kds_s2000w_debug.c | 10 +++++----- src/kds_s2000w_debug.h | 1 + 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/kds_s2000w_client.c b/src/kds_s2000w_client.c index 7af37d0..5c2495c 100644 --- a/src/kds_s2000w_client.c +++ b/src/kds_s2000w_client.c @@ -29,6 +29,16 @@ char* name = NULL; bool ssl = false; uint8_t wait_seconds = 1; +void _kds_s2000w_client_set_verbose() +{ + uint8_t log_level = kds_s2000w_debug_get_log_level(); + + if (log_level < DEBUG) + return; + + curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); +} + size_t _kds_s2000w_client_write_callback(char* ptr, size_t size, size_t nmemb, void* data) { response* resp = (response*) data; @@ -179,6 +189,7 @@ uint8_t kds_s2000w_client_open_session(response* resp) curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, _kds_s2000w_client_write_callback); curl_easy_setopt(curl, CURLOPT_WRITEDATA, resp); + _kds_s2000w_client_set_verbose(); CURLcode result = curl_easy_perform(curl); _kds_s2000w_client_add_null_terminate_to_response(resp); curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &resp->code); @@ -224,6 +235,7 @@ void kds_s2000w_client_close_session(int64_t sessionid) _kds_s2000w_client_set_ssl_verification_off(curl); curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); + _kds_s2000w_client_set_verbose(); CURLcode result = curl_easy_perform(curl); _kds_s2000w_client_print_error_result(result); @@ -263,6 +275,7 @@ uint8_t kds_s2000w_client_get_capabilities(response* resp) curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, _kds_s2000w_client_write_callback); curl_easy_setopt(curl, CURLOPT_WRITEDATA, resp); + _kds_s2000w_client_set_verbose(); CURLcode result = curl_easy_perform(curl); _kds_s2000w_client_add_null_terminate_to_response(resp); curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &resp->code); @@ -311,6 +324,7 @@ uint8_t kds_s2000w_client_status_session(int64_t sessionid, response* resp) curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, _kds_s2000w_client_write_callback); curl_easy_setopt(curl, CURLOPT_WRITEDATA, resp); + _kds_s2000w_client_set_verbose(); CURLcode result = curl_easy_perform(curl); _kds_s2000w_client_add_null_terminate_to_response(resp); curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &resp->code); @@ -357,6 +371,7 @@ uint8_t kds_s2000w_client_start_scan(int64_t sessionid) _kds_s2000w_client_set_ssl_verification_off(curl); curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); + _kds_s2000w_client_set_verbose(); CURLcode result = curl_easy_perform(curl); _kds_s2000w_client_print_error_status(curl); @@ -401,6 +416,7 @@ uint8_t kds_s2000w_client_stop_scan(int64_t sessionid) _kds_s2000w_client_set_ssl_verification_off(curl); curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); + _kds_s2000w_client_set_verbose(); CURLcode result = curl_easy_perform(curl); _kds_s2000w_client_print_error_status(curl); @@ -449,6 +465,7 @@ uint8_t kds_s2000w_client_get_image(int64_t sessionid, uint8_t img_number, respo curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, _kds_s2000w_client_write_callback); curl_easy_setopt(curl, CURLOPT_WRITEDATA, resp); + _kds_s2000w_client_set_verbose(); CURLcode result = curl_easy_perform(curl); curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &resp->code); @@ -498,6 +515,7 @@ uint8_t kds_s2000w_client_delete_image(int64_t sessionid, uint8_t img_number) _kds_s2000w_client_set_ssl_verification_off(curl); curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); + _kds_s2000w_client_set_verbose(); CURLcode result = curl_easy_perform(curl); _kds_s2000w_client_print_error_status(curl); @@ -545,6 +563,7 @@ uint8_t kds_s2000w_client_get_option(int64_t sessionid, response* resp) curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, _kds_s2000w_client_write_callback); curl_easy_setopt(curl, CURLOPT_WRITEDATA, resp); + _kds_s2000w_client_set_verbose(); CURLcode result = curl_easy_perform(curl); _kds_s2000w_client_add_null_terminate_to_response(resp); curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &resp->code); @@ -592,6 +611,7 @@ uint8_t kds_s2000w_client_set_option(int64_t sessionid, response* resp) _kds_s2000w_client_set_ssl_verification_off(curl); curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); + _kds_s2000w_client_set_verbose(); CURLcode result = curl_easy_perform(curl); curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &resp->code); diff --git a/src/kds_s2000w_debug.c b/src/kds_s2000w_debug.c index 38d6627..9af66da 100644 --- a/src/kds_s2000w_debug.c +++ b/src/kds_s2000w_debug.c @@ -29,7 +29,7 @@ const char* _kds_s2000w_debug_string(uint8_t level) } } -uint8_t _kds_s2000w_debug_get_log_level() { +uint8_t kds_s2000w_debug_get_log_level() { char* log_level = getenv("KDS_S2000W_NET_DEBUG"); if (log_level == NULL) @@ -45,7 +45,7 @@ void kds_s2000w_debug_set_default_log_level(uint8_t level) void kds_s2000w_debug_printf(uint8_t level, const char* message) { - if (level > _kds_s2000w_debug_get_log_level()) + if (level > kds_s2000w_debug_get_log_level()) return; if (level < STDOUT_LEVEL) { @@ -58,7 +58,7 @@ void kds_s2000w_debug_printf(uint8_t level, const char* message) void kds_s2000w_debug_printf_int(uint8_t level, const char* message, uint32_t value) { - if (level > _kds_s2000w_debug_get_log_level()) + if (level > kds_s2000w_debug_get_log_level()) return; if (level < STDOUT_LEVEL) { @@ -71,7 +71,7 @@ void kds_s2000w_debug_printf_int(uint8_t level, const char* message, uint32_t va void kds_s2000w_debug_printf_long(uint8_t level, const char* message, uint64_t value) { - if (level > _kds_s2000w_debug_get_log_level()) + if (level > kds_s2000w_debug_get_log_level()) return; if (level < STDOUT_LEVEL) { @@ -84,7 +84,7 @@ void kds_s2000w_debug_printf_long(uint8_t level, const char* message, uint64_t v void kds_s2000w_debug_messure_memory_usage(uint8_t level) { - if (level > _kds_s2000w_debug_get_log_level()) + if (level > kds_s2000w_debug_get_log_level()) return; struct rusage* memory_usage = malloc(sizeof(struct rusage)); diff --git a/src/kds_s2000w_debug.h b/src/kds_s2000w_debug.h index 7b7be3c..8dc5aa7 100644 --- a/src/kds_s2000w_debug.h +++ b/src/kds_s2000w_debug.h @@ -10,6 +10,7 @@ #define DEBUG 5 #define ALL 6 +uint8_t kds_s2000w_debug_get_log_level(); void kds_s2000w_debug_set_default_log_level(uint8_t level); void kds_s2000w_debug_printf(uint8_t level, const char* message); void kds_s2000w_debug_printf_int(uint8_t level, const char* message, uint32_t value); -- 2.39.5