From: Bastian Dehn Date: Sun, 21 Jan 2024 16:59:22 +0000 (+0100) Subject: get option numbers by option zero X-Git-Tag: v1.0.0^2~483 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=851ab7eed293d17cb559568e0902a772762ef7cd;p=sane-kds-s2000w-net.git get option numbers by option zero --- 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,