]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
Revert "change write direct to response"
authorBastian Dehn <hhaalo@arcor.de>
Sun, 2 Feb 2025 17:38:40 +0000 (18:38 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 2 Feb 2025 17:38:40 +0000 (18:38 +0100)
This reverts commit 64c85b53106e000fb91859a6d4a7304cc5b176f7.

src/kds_s2000w_client.c

index a56902d85bc3b439f1fa55f2fb9294a2177c642c..bf441ba9edf7da0655a0e84789646ba4ca039783 100644 (file)
@@ -52,6 +52,16 @@ void _kds_s2000w_client_print_error_result(CURLcode result)
        kds_s2000w_debug_printf(ERROR, curl_easy_strerror(result));
 }
 
+void _kds_s2000w_client_stream_to_response(char* mem, response* resp, size_t* size)
+{
+       kds_s2000w_debug_printf(ALL, "kds_s2000w_client_stream_to_response");
+
+       size_t incl_null_term = *size + 1;
+       resp->data = malloc(sizeof(char) * incl_null_term);
+       resp->size = incl_null_term;
+       memcpy(resp->data, mem, incl_null_term);
+}
+
 void _kds_s2000w_client_set_ssl_verification_off(CURL* curl)
 {
        if (config->ssl_verify)
@@ -153,7 +163,7 @@ int kds_s2000w_client_open_session(response* resp)
 
        fclose(stream);
        stream = NULL;
-       resp->data = *mem;
+       _kds_s2000w_client_stream_to_response(*mem, resp, sizeloc);
 
        curl_url_cleanup(url_handler);
        url_handler = NULL;
@@ -163,6 +173,8 @@ int kds_s2000w_client_open_session(response* resp)
        body = NULL;
        curl_free(url);
        url = NULL;
+       free(*mem);
+       *mem = NULL;
        free(mem);
        mem = NULL;
        free(sizeloc);
@@ -246,7 +258,7 @@ int kds_s2000w_client_get_capabilities(response* resp)
 
        fclose(stream);
        stream = NULL;
-       resp->data = *mem;
+       _kds_s2000w_client_stream_to_response(*mem, resp, sizeloc);
 
        curl_url_cleanup(url_handler);
        url_handler = NULL;
@@ -254,6 +266,8 @@ int kds_s2000w_client_get_capabilities(response* resp)
        headers = NULL;
        curl_free(url);
        url = NULL;
+       free(*mem);
+       *mem = NULL;
        free(mem);
        mem = NULL;
        free(sizeloc);
@@ -304,7 +318,7 @@ int kds_s2000w_client_status_session(int64_t sessionid, response* resp)
 
        fclose(stream);
        stream = NULL;
-       resp->data = *mem;
+       _kds_s2000w_client_stream_to_response(*mem, resp, sizeloc);
 
        curl_url_cleanup(url_handler);
        url_handler = NULL;
@@ -312,6 +326,8 @@ int kds_s2000w_client_status_session(int64_t sessionid, response* resp)
        headers = NULL;
        curl_free(url);
        url = NULL;
+       free(*mem);
+       *mem = NULL;
        free(mem);
        mem = NULL;
        free(sizeloc);
@@ -362,7 +378,7 @@ int kds_s2000w_client_start_scan(int64_t sessionid, response* resp)
 
        fclose(stream);
        stream = NULL;
-       resp->data = *mem;
+       _kds_s2000w_client_stream_to_response(*mem, resp, sizeloc);
 
        curl_url_cleanup(url_handler);
        url_handler = NULL;
@@ -370,6 +386,8 @@ int kds_s2000w_client_start_scan(int64_t sessionid, response* resp)
        headers = NULL;
        curl_free(url);
        url = NULL;
+       free(*mem);
+       *mem = NULL;
        free(mem);
        mem = NULL;
        free(sizeloc);
@@ -420,7 +438,7 @@ int kds_s2000w_client_stop_scan(int64_t sessionid, response* resp)
 
        fclose(stream);
        stream = NULL;
-       resp->data = *mem;
+       _kds_s2000w_client_stream_to_response(*mem, resp, sizeloc);
 
        curl_url_cleanup(url_handler);
        url_handler = NULL;
@@ -428,6 +446,8 @@ int kds_s2000w_client_stop_scan(int64_t sessionid, response* resp)
        headers = NULL;
        curl_free(url);
        url = NULL;
+       free(*mem);
+       *mem = NULL;
        free(mem);
        mem = NULL;
        free(sizeloc);
@@ -480,7 +500,7 @@ int kds_s2000w_client_get_image(int64_t sessionid, int img_number, response* res
 
        fclose(stream);
        stream = NULL;
-       resp->data = *mem;
+       _kds_s2000w_client_stream_to_response(*mem, resp, sizeloc);
 
        curl_url_cleanup(url_handler);
        url_handler = NULL;
@@ -488,6 +508,8 @@ int kds_s2000w_client_get_image(int64_t sessionid, int img_number, response* res
        headers = NULL;
        curl_free(url);
        url = NULL;
+       free(*mem);
+       *mem = NULL;
        free(mem);
        mem = NULL;
        free(sizeloc);
@@ -542,7 +564,7 @@ int kds_s2000w_client_delete_image(int64_t sessionid, int img_number, response*
 
        fclose(stream);
        stream = NULL;
-       resp->data = *mem;
+       _kds_s2000w_client_stream_to_response(*mem, resp, sizeloc);
 
        curl_url_cleanup(url_handler);
        url_handler = NULL;
@@ -552,6 +574,8 @@ int kds_s2000w_client_delete_image(int64_t sessionid, int img_number, response*
        headers = NULL;
        curl_free(url);
        url = NULL;
+       free(*mem);
+       *mem = NULL;
        free(mem);
        mem = NULL;
        free(sizeloc);
@@ -601,7 +625,7 @@ int kds_s2000w_client_get_option(int64_t sessionid, response* resp)
 
        fclose(stream);
        stream = NULL;
-       resp->data = *mem;
+       _kds_s2000w_client_stream_to_response(*mem, resp, sizeloc);
 
        curl_url_cleanup(url_handler);
        url_handler = NULL;
@@ -609,6 +633,8 @@ int kds_s2000w_client_get_option(int64_t sessionid, response* resp)
        headers = NULL;
        curl_free(url);
        url = NULL;
+       free(*mem);
+       *mem = NULL;
        free(mem);
        mem = NULL;
        free(sizeloc);