From 851ab7eed293d17cb559568e0902a772762ef7cd Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 21 Jan 2024 17:59:22 +0100 Subject: [PATCH] get option numbers by option zero --- src/kds_s2000w_handler.c | 29 +++++++++++++++-------------- src/kds_s2000w_net.c | 2 +- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index a7dceb8..b6a75d4 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -43,21 +43,22 @@ void kds_s2000w_handler_get_option(int option, void* value) curl_url_set(url_handler, CURLUPART_QUERY, query, CURLU_APPENDQUERY | CURLU_URLENCODE); char* url = NULL; curl_url_get(url_handler, CURLUPART_URL, &url, 0); - printf(url); - curl_easy_setopt(curl, CURLOPT_URL, url); - curl_easy_setopt(curl, CURLOPT_HTTPGET, 1L); - curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); - curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*) &resp); - CURLcode result = curl_easy_perform(curl); - curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &resp.code); - - json_object* resObj = json_tokener_parse(resp.data); - json_object* config = json_object_object_get(resObj, "Configuration"); - int* num_options = (int*) value; - num_options = malloc(sizeof(int)); - *num_options = 0; - *num_options = json_object_object_length(config); + if (option == 0) { + curl_easy_setopt(curl, CURLOPT_URL, url); + curl_easy_setopt(curl, CURLOPT_HTTPGET, 1L); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*) &resp); + CURLcode result = curl_easy_perform(curl); + curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &resp.code); + + json_object* resObj = json_tokener_parse(resp.data); + json_object* config = json_object_object_get(resObj, "Configuration"); + int* num_options = (int*) value; + num_options = malloc(sizeof(int)); + *num_options = 0; + *num_options = json_object_object_length(config); + } curl_url_cleanup(url_handler); url_handler = NULL; diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index 9810eec..be49ccc 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -99,7 +99,7 @@ SANE_Status _sane_kds_s2000w_net_control_option(SANE_Handle handle, if (action == SANE_ACTION_SET_AUTO) kds_s2000w_handler_set_option_auto(option); - return SANE_STATUS_UNSUPPORTED; + return SANE_STATUS_GOOD; } SANE_Status _sane_kds_s2000w_net_get_parameters(SANE_Handle handle, -- 2.39.5