From b956f2ef666658b0464f31ad63936b289be6f36a Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 28 Jan 2024 20:54:15 +0100 Subject: [PATCH] add load capabilities and print stdout --- src/kds_s2000w_client.c | 26 ++++++++++++++++++++++++++ src/kds_s2000w_client.h | 1 + src/kds_s2000w_handler.c | 8 ++++++++ 3 files changed, 35 insertions(+) diff --git a/src/kds_s2000w_client.c b/src/kds_s2000w_client.c index 350fd6a..5cffaea 100644 --- a/src/kds_s2000w_client.c +++ b/src/kds_s2000w_client.c @@ -100,6 +100,32 @@ void kds_s2000w_client_close_session(int64_t sessionid) curl = NULL; } +int kds_s2000w_client_get_capabilities(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?V2", 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 8c0e5bf..5f646c6 100644 --- a/src/kds_s2000w_client.h +++ b/src/kds_s2000w_client.h @@ -9,6 +9,7 @@ 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_capabilities(response* response); int kds_s2000w_client_get_option(int64_t sessionid, response* response); int kds_s2000w_client_set_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 5b28681..9fef227 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -306,6 +306,14 @@ void kds_s2000w_handler_set_option(int option, void* value) value_object = json_object_object_get(config, "ScanSource"); _write_string_value_to_json(value_object, value); break; + case 24: + printf("Konfiguration reset\n"); + resp = kds_s2000w_client_response_init(); + kds_s2000w_client_get_capabilities(resp); + printf("capabilities: %s\n", resp->data); + kds_s2000w_client_response_free(resp); + resp = NULL; + break; default: break; } -- 2.39.5