]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
change delete image with memory stream
authorBastian Dehn <hhaalo@arcor.de>
Tue, 21 May 2024 18:22:17 +0000 (20:22 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Tue, 21 May 2024 18:22:17 +0000 (20:22 +0200)
src/kds_s2000w_client.c

index c485d3ca391bb67447b22a8513bfcc8155c7ba1e..2ccd7d6abf426d5ce33a58cc984fe8703a488e26 100644 (file)
@@ -440,6 +440,9 @@ int kds_s2000w_client_delete_image(int64_t sessionid, int img_number, response*
        char url_path[30];
        char header_str[80];
        CURLcode result = 0;
+       FILE* stream = NULL;
+       char* buffer = NULL;
+       size_t* sizeloc = NULL;
 
        curl = curl_easy_init();
        if(!curl)
@@ -456,8 +459,10 @@ int kds_s2000w_client_delete_image(int64_t sessionid, int img_number, response*
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl, CURLOPT_URL, url);
        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
-       curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, _kds_s2000w_client_callback);
-       curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*) response);
+       buffer = malloc(sizeof(char));
+       sizeloc = malloc(sizeof(size_t));
+       stream = open_memstream(&buffer, sizeloc);
+       curl_easy_setopt(curl, CURLOPT_WRITEDATA, stream);
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
        result = curl_easy_perform(curl);
@@ -467,12 +472,20 @@ int kds_s2000w_client_delete_image(int64_t sessionid, int img_number, response*
        if (result != CURLE_OK)
                fprintf(stderr, "ERROR: curl_easy_perform: %s\n", curl_easy_strerror(result));
 
+       fflush(stream);
+       _kds_s2000w_client_stream_to_response(stream, response, sizeloc);
+       fclose(stream);
+
        curl_url_cleanup(url_handler);
        url_handler = NULL;
        curl_free(url);
        url = NULL;
        curl_easy_cleanup(curl);
        curl = NULL;
+       free(buffer);
+       buffer = NULL;
+       free(sizeloc);
+       sizeloc = NULL;
 
        return result;
 }