]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
right order handler methods
authorBastian Dehn <hhaalo@arcor.de>
Mon, 22 Jan 2024 19:18:21 +0000 (20:18 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Mon, 22 Jan 2024 19:18:21 +0000 (20:18 +0100)
src/kds_s2000w_handler.c

index d0d3d28b37062d60e6c87ed60d54f02bfd469ff0..5064bbe189cf56fbb5ed8c0f3ac51db858c12386 100644 (file)
@@ -7,7 +7,53 @@
 #include "kds_s2000w_handler.h"
 #include "kds_s2000w_client.h"
 
-int64_t sessionid = 0;
+int64_t _sessionid = 0;
+
+device_state kds_s2000w_handler_open()
+{
+       device_state return_state = NOTCONNECTED;
+       CURL *curl = curl_easy_init();
+       if(!curl)
+               return NOTCONNECTED;
+
+       response* resp = kds_s2000w_client_response_init();
+       int result = kds_s2000w_client_open_session("hhaalo", resp);
+
+       if (result != 0 || resp->code == 404)
+               return_state = NOTCONNECTED;
+
+       if (resp->code == 423)
+               return_state = BUSY;
+
+       json_object* resObj = NULL;
+       if (resp->code == 200) {
+               resObj = json_tokener_parse(resp->data);
+               json_object* valueObj = NULL;
+               json_object_object_get_ex(resObj, "SessionId", &valueObj);
+               _sessionid = json_object_get_int64(valueObj);
+               valueObj = NULL;
+               return_state = OPENED;
+       }
+
+       json_object_put(resObj);
+       resObj = NULL;
+       kds_s2000w_client_response_free(resp);
+
+       return return_state;
+}
+
+void kds_s2000w_handler_close()
+{
+       if (_sessionid == 0)
+               return;
+
+       CURL *curl = curl_easy_init();
+       if(!curl)
+               return;
+
+       kds_s2000w_client_close_session(_sessionid);
+       _sessionid = 0;
+}
 
 void kds_s2000w_handler_get_option(int option, void* value)
 {
@@ -22,7 +68,7 @@ void kds_s2000w_handler_get_option(int option, void* value)
        CURLU* url_handler = curl_url();
        curl_url_set(url_handler, CURLUPART_URL, "http://scanner.lan.hhaalo.de/api/session", 0);
        char query[75];
-       sprintf(query, "SessionId=%li", sessionid);
+       sprintf(query, "SessionId=%li", _sessionid);
        curl_url_set(url_handler, CURLUPART_QUERY, query, CURLU_APPENDQUERY | CURLU_URLENCODE);
        char* url = NULL;
        curl_url_get(url_handler, CURLUPART_URL, &url, 0);
@@ -59,50 +105,4 @@ void kds_s2000w_handler_set_option(int option, void* value)
 void kds_s2000w_handler_set_option_auto(int option)
 {
        return;
-}
-
-device_state kds_s2000w_handler_open()
-{
-       device_state return_state = NOTCONNECTED;
-       CURL *curl = curl_easy_init();
-       if(!curl)
-               return NOTCONNECTED;
-
-       response* resp = kds_s2000w_client_response_init();
-       int result = kds_s2000w_client_open_session("hhaalo", resp);
-
-       if (result != 0 || resp->code == 404)
-               return_state = NOTCONNECTED;
-
-       if (resp->code == 423)
-               return_state = BUSY;
-
-       json_object* resObj = NULL;
-       if (resp->code == 200) {
-               resObj = json_tokener_parse(resp->data);
-               json_object* valueObj = NULL;
-               json_object_object_get_ex(resObj, "SessionId", &valueObj);
-               sessionid = json_object_get_int64(valueObj);
-               valueObj = NULL;
-               return_state = OPENED;
-       }
-
-       json_object_put(resObj);
-       resObj = NULL;
-       kds_s2000w_client_response_free(resp);
-
-       return return_state;
-}
-
-void kds_s2000w_handler_close()
-{
-       if (sessionid == 0)
-               return;
-
-       CURL *curl = curl_easy_init();
-       if(!curl)
-               return;
-
-       kds_s2000w_client_close_session(sessionid);
-       sessionid = 0;
 }
\ No newline at end of file