]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
implement get image
authorBastian Dehn <hhaalo@arcor.de>
Wed, 31 Jan 2024 18:34:45 +0000 (19:34 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Wed, 31 Jan 2024 18:34:45 +0000 (19:34 +0100)
src/kds_s2000w_client.c

index ae382e1484de2c577999a9d0cf89f8714fbc07c3..19a72957efa9b2f0a6ff470a1681f2011918411f 100644 (file)
@@ -224,7 +224,36 @@ int kds_s2000w_client_get_metadata(int64_t sessionid, int img_number, response*
 
 int kds_s2000w_client_get_image(int64_t sessionid, int img_number, response* response)
 {
-       return 0;
+       CURL *curl = curl_easy_init();
+       if(!curl)
+               return CURLE_FAILED_INIT;
+
+       CURLU* url_handler = curl_url();
+       char img_number_str[10];
+       sprintf(img_number_str, "%i", img_number);
+       curl_url_set(url_handler, CURLUPART_URL, "http://scanner.lan.hhaalo.de/api/session/image", 0);
+       curl_url_set(url_handler, CURLUPART_PATH, img_number_str, 0);
+       char* url = NULL;
+       curl_url_get(url_handler, CURLUPART_URL, &url, 0);
+
+       struct curl_slist* headers = NULL;
+       char header_str[80];
+       sprintf(header_str, "SessionId: %li", sessionid);
+       headers = curl_slist_append(headers, header_str);
+       curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
+       curl_easy_setopt(curl, CURLOPT_URL, url);
+       curl_easy_setopt(curl, CURLOPT_HTTPGET, 1L);
+       curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, _kds_s2000w_client_callback);
+       curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*) response);
+       CURLcode result = curl_easy_perform(curl);
+       curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response->code);
+
+       curl_url_cleanup(url_handler);
+       url_handler = NULL;
+       curl_free(url);
+       url = NULL;
+
+       return result;
 }
 
 int kds_s2000w_client_delete_image(int64_t sessionid, int img_number, response* response)