]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
add content type headers
authorBastian Dehn <hhaalo@arcor.de>
Tue, 31 Dec 2024 14:51:02 +0000 (15:51 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Tue, 31 Dec 2024 14:51:02 +0000 (15:51 +0100)
src/kds_s2000w_client.c

index 8720359f459184e6da06a4b5bf36b7a53db5ec86..1517a7de9ccc42a6552f00dc56bfd86403121cea 100644 (file)
@@ -8,7 +8,12 @@
 #include "kds_s2000w_debug.h"
 
 #define MAX_STR_BUFFER_LENGTH  80
+
 #define X_STATUS_HEADER "x-status"
+#define CONTENT_TYPE_HEADER "Content-Type: application/json"
+#define ACCEPT_JSON_HEADER "Accept: application/json"
+#define ACCEPT_IMAGE_HEADER "Accept: image/jpeg,image/tiff"
+
 #define SESSION_PATH "/api/session"
 #define STATUS_PATH "/api/session/status"
 #define STARTSCAN_PATH "/api/session/startscan"
@@ -124,6 +129,11 @@ int kds_s2000w_client_open_session(response* response)
        curl_url_get(url_handler, CURLUPART_URL, &url, 0);
        curl_easy_setopt(curl, CURLOPT_URL, url);
 
+       struct curl_slist* headers = NULL;
+       headers = curl_slist_append(headers, CONTENT_TYPE_HEADER);
+       headers = curl_slist_append(headers, ACCEPT_JSON_HEADER);
+       curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
+
        char* buffer = malloc(sizeof(char));
        size_t* sizeloc = malloc(sizeof(size_t));
        FILE* stream = open_memstream(&buffer, sizeloc);
@@ -149,6 +159,8 @@ int kds_s2000w_client_open_session(response* response)
 
        curl_url_cleanup(url_handler);
        url_handler = NULL;
+       curl_slist_free_all(headers);
+       headers = NULL;
        free(body);
        body = NULL;
        curl_free(url);
@@ -179,6 +191,8 @@ void kds_s2000w_client_close_session(int64_t sessionid)
        memset(header_str, 0, MAX_STR_BUFFER_LENGTH);
        sprintf(header_str, "SessionId: %li", sessionid);
        headers = curl_slist_append(headers, header_str);
+       headers = curl_slist_append(headers, CONTENT_TYPE_HEADER);
+       headers = curl_slist_append(headers, ACCEPT_JSON_HEADER);
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
 
        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
@@ -220,6 +234,8 @@ int kds_s2000w_client_status_session(int64_t sessionid, response* response)
        struct curl_slist* headers = NULL;
        sprintf(header_str, "SessionId: %li", sessionid);
        headers = curl_slist_append(headers, header_str);
+       headers = curl_slist_append(headers, CONTENT_TYPE_HEADER);
+       headers = curl_slist_append(headers, ACCEPT_JSON_HEADER);
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
 
        char* buffer = malloc(sizeof(char));
@@ -243,6 +259,8 @@ int kds_s2000w_client_status_session(int64_t sessionid, response* response)
 
        curl_url_cleanup(url_handler);
        url_handler = NULL;
+       curl_slist_free_all(headers);
+       headers = NULL;
        curl_free(url);
        url = NULL;
        free(buffer);
@@ -273,6 +291,8 @@ int kds_s2000w_client_start_scan(int64_t sessionid, response* response)
        memset(header_str, 0, MAX_STR_BUFFER_LENGTH);
        sprintf(header_str, "SessionId: %li", sessionid);
        headers = curl_slist_append(headers, header_str);
+       headers = curl_slist_append(headers, CONTENT_TYPE_HEADER);
+       headers = curl_slist_append(headers, ACCEPT_JSON_HEADER);
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
 
        char* buffer = malloc(sizeof(char));
@@ -297,6 +317,8 @@ int kds_s2000w_client_start_scan(int64_t sessionid, response* response)
 
        curl_url_cleanup(url_handler);
        url_handler = NULL;
+       curl_slist_free_all(headers);
+       headers = NULL;
        curl_free(url);
        url = NULL;
        free(buffer);
@@ -327,6 +349,8 @@ int kds_s2000w_client_stop_scan(int64_t sessionid, response* response)
        struct curl_slist* headers = NULL;
        sprintf(header_str, "SessionId: %li", sessionid);
        headers = curl_slist_append(headers, header_str);
+       headers = curl_slist_append(headers, CONTENT_TYPE_HEADER);
+       headers = curl_slist_append(headers, ACCEPT_JSON_HEADER);
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
 
        char* buffer = malloc(sizeof(char));
@@ -351,6 +375,8 @@ int kds_s2000w_client_stop_scan(int64_t sessionid, response* response)
 
        curl_url_cleanup(url_handler);
        url_handler = NULL;
+       curl_slist_free_all(headers);
+       headers = NULL;
        curl_free(url);
        url = NULL;
        free(buffer);
@@ -384,6 +410,8 @@ int kds_s2000w_client_get_image(int64_t sessionid, int img_number, response* res
        memset(header_str, 0, MAX_STR_BUFFER_LENGTH);
        sprintf(header_str, "SessionId: %li", sessionid);
        headers = curl_slist_append(headers, header_str);
+       headers = curl_slist_append(headers, CONTENT_TYPE_HEADER);
+       headers = curl_slist_append(headers, ACCEPT_IMAGE_HEADER);
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
 
        char* buffer = malloc(sizeof(char));
@@ -407,6 +435,8 @@ int kds_s2000w_client_get_image(int64_t sessionid, int img_number, response* res
 
        curl_url_cleanup(url_handler);
        url_handler = NULL;
+       curl_slist_free_all(headers);
+       headers = NULL;
        curl_free(url);
        url = NULL;
        free(buffer);
@@ -425,8 +455,6 @@ int kds_s2000w_client_delete_image(int64_t sessionid, int img_number, response*
 {
        debug_printf(ALL, "kds_s2000w_client_delete_image");
 
-       struct curl_slist* headers = NULL;
-
        curl_easy_reset(curl);
 
        char* url = NULL;
@@ -439,10 +467,13 @@ int kds_s2000w_client_delete_image(int64_t sessionid, int img_number, response*
        curl_url_get(url_handler, CURLUPART_URL, &url, 0);
        curl_easy_setopt(curl, CURLOPT_URL, url);
 
+       struct curl_slist* headers = NULL;
        char* header_str = malloc(sizeof(char) * MAX_STR_BUFFER_LENGTH);
        memset(header_str, 0, MAX_STR_BUFFER_LENGTH);
        sprintf(header_str, "SessionId: %li", sessionid);
        headers = curl_slist_append(headers, header_str);
+       headers = curl_slist_append(headers, CONTENT_TYPE_HEADER);
+       headers = curl_slist_append(headers, ACCEPT_JSON_HEADER);
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
 
        char* buffer = malloc(sizeof(char));
@@ -466,6 +497,8 @@ int kds_s2000w_client_delete_image(int64_t sessionid, int img_number, response*
 
        curl_url_cleanup(url_handler);
        url_handler = NULL;
+       curl_slist_free_all(headers);
+       headers = NULL;
        curl_free(url);
        url = NULL;
        free(buffer);
@@ -491,6 +524,11 @@ int kds_s2000w_client_get_capabilities(response* response)
        curl_url_get(url_handler, CURLUPART_URL, &url, 0);
        curl_easy_setopt(curl, CURLOPT_URL, url);
 
+       struct curl_slist* headers = NULL;
+       headers = curl_slist_append(headers, CONTENT_TYPE_HEADER);
+       headers = curl_slist_append(headers, ACCEPT_JSON_HEADER);
+       curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
+
        char* buffer = malloc(sizeof(char));
        size_t* sizeloc = malloc(sizeof(size_t));
        FILE* stream = open_memstream(&buffer, sizeloc);
@@ -512,6 +550,8 @@ int kds_s2000w_client_get_capabilities(response* response)
 
        curl_url_cleanup(url_handler);
        url_handler = NULL;
+       curl_slist_free_all(headers);
+       headers = NULL;
        curl_free(url);
        url = NULL;
        free(buffer);
@@ -540,6 +580,8 @@ int kds_s2000w_client_get_option(int64_t sessionid, response* response)
        struct curl_slist* headers = NULL;
        sprintf(header_str, "SessionId: %li", sessionid);
        headers = curl_slist_append(headers, header_str);
+       headers = curl_slist_append(headers, CONTENT_TYPE_HEADER);
+       headers = curl_slist_append(headers, ACCEPT_JSON_HEADER);
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
 
        char* buffer = malloc(sizeof(char));
@@ -563,6 +605,8 @@ int kds_s2000w_client_get_option(int64_t sessionid, response* response)
 
        curl_url_cleanup(url_handler);
        url_handler = NULL;
+       curl_slist_free_all(headers);
+       headers = NULL;
        curl_free(url);
        url = NULL;
        free(buffer);
@@ -593,6 +637,8 @@ int kds_s2000w_client_set_option(int64_t sessionid, response* response)
        struct curl_slist* headers = NULL;
        sprintf(header_str, "SessionId: %li", sessionid);
        headers = curl_slist_append(headers, header_str);
+       headers = curl_slist_append(headers, CONTENT_TYPE_HEADER);
+       headers = curl_slist_append(headers, ACCEPT_JSON_HEADER);
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
 
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, response->data);
@@ -609,6 +655,8 @@ int kds_s2000w_client_set_option(int64_t sessionid, response* response)
 
        curl_url_cleanup(url_handler);
        url_handler = NULL;
+       curl_slist_free_all(headers);
+       headers = NULL;
        curl_free(url);
        url = NULL;
        free(header_str);