From: Bastian Dehn Date: Sat, 27 Jan 2024 13:00:19 +0000 (+0100) Subject: only one response get options X-Git-Tag: v1.0.0^2~437 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=acc54450e42ac9d6a84b8c50e04e5d1efb97f1b9;p=sane-kds-s2000w-net.git only one response get options --- diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index b2296ba..f6f1d7c 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -7,7 +7,9 @@ #include "kds_s2000w_handler.h" #include "kds_s2000w_client.h" -current_state* state; +current_state* state = NULL; +json_object* resObj = NULL; +json_object* config = NULL; void _write_string_value(json_object* value_object, void* value) { @@ -69,6 +71,8 @@ void kds_s2000w_handler_close() state->sessionid = 0; free(state); state = NULL; + json_object_put(resObj); + resObj = NULL; } current_state* kds_s2000w_handler_current_state() @@ -78,20 +82,24 @@ current_state* kds_s2000w_handler_current_state() void kds_s2000w_handler_get_option(int option, void* value) { - response* resp = kds_s2000w_client_response_init(); - int result = kds_s2000w_client_get_option(state->sessionid, resp); - json_object* resObj = json_tokener_parse(resp->data); - json_object* config = json_object_object_get(resObj, "Configuration"); + if (option == 0) { + response* resp = kds_s2000w_client_response_init(); + int result = kds_s2000w_client_get_option(state->sessionid, resp); + resObj = json_tokener_parse(resp->data); + config = json_object_object_get(resObj, "Configuration"); + + if (result != 0 || resp->code == 404) { + kds_s2000w_client_response_free(resp); + resp = NULL; + json_object_put(resObj); + resObj = NULL; + return; + } - if (result != 0 || resp->code == 404) { kds_s2000w_client_response_free(resp); resp = NULL; - json_object_put(resObj); - resObj = NULL; - return; } - json_object* value_object = NULL; switch(option) { case 0: @@ -189,11 +197,6 @@ void kds_s2000w_handler_get_option(int option, void* value) default: break; } - - kds_s2000w_client_response_free(resp); - resp = NULL; - json_object_put(resObj); - resObj = NULL; } void kds_s2000w_handler_set_option(int option, void* value)