From: Bastian Dehn Date: Mon, 22 Jan 2024 19:58:51 +0000 (+0100) Subject: chnage get all option from capabilities X-Git-Tag: v1.0.0^2~472 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=8748cac49f7d9fd4e15bcc7359ab28a78b503124;p=sane-kds-s2000w-net.git chnage get all option from capabilities --- diff --git a/src/kds_s2000w_client.c b/src/kds_s2000w_client.c index 628fe64..48f75f7 100644 --- a/src/kds_s2000w_client.c +++ b/src/kds_s2000w_client.c @@ -89,6 +89,32 @@ void kds_s2000w_client_close_session(int64_t sessionid) curl = NULL; } +int kds_s2000w_client_get_all_options(response* response) +{ + 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/scanner/capabilities", 0); + char* url = NULL; + curl_url_get(url_handler, CURLUPART_URL, &url, 0); + + 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_get_option(int64_t sessionid, response* response) { CURL *curl = curl_easy_init(); diff --git a/src/kds_s2000w_client.h b/src/kds_s2000w_client.h index ca0b123..316889c 100644 --- a/src/kds_s2000w_client.h +++ b/src/kds_s2000w_client.h @@ -9,5 +9,6 @@ response* kds_s2000w_client_response_init(); void kds_s2000w_client_response_free(response* response); int kds_s2000w_client_open_session(const char* username, response* response); void kds_s2000w_client_close_session(int64_t sessionid); +int kds_s2000w_client_get_all_options(response* response); int kds_s2000w_client_get_option(int64_t sessionid, response* response); #endif \ No newline at end of file diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index 268f4a2..cbcfc4b 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -61,7 +61,7 @@ void kds_s2000w_handler_get_option(int option, void* value) return; response* resp = kds_s2000w_client_response_init(); - int result = kds_s2000w_client_get_option(_sessionid, resp); + int result = kds_s2000w_client_get_all_options(resp); if (result != 0 || resp->code == 404) return;