]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
add implement start scan in client
authorBastian Dehn <hhaalo@arcor.de>
Tue, 30 Jan 2024 20:59:47 +0000 (21:59 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Tue, 30 Jan 2024 20:59:47 +0000 (21:59 +0100)
src/kds_s2000w_client.c

index b956bbce7f59ea33290d0cf9ca2a61bfdbc2508b..148dc14b85ac774e8aaf8dc504ed978dbac79318 100644 (file)
@@ -128,7 +128,33 @@ int kds_s2000w_client_status_session(int64_t sessionid, response* response)
 
 int kds_s2000w_client_start_scan(int64_t sessionid, response* response)
 {
-       return 0;
+       CURL *curl = curl_easy_init();
+       if(!curl)
+               return CURLE_FAILED_INIT;
+
+       CURLU* url_handler = curl_url();
+       curl_url_set(url_handler, CURLUPART_URL, "http://scanner.lan.hhaalo.de/api/session/startscan", 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_POST, 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_stop_scan(int64_t sessionid, response* response)