From 651ab59bd032f8861b6334a9855cb133ae13d53d Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Mon, 29 Jan 2024 19:50:51 +0100 Subject: [PATCH] move wakeup call to handler --- src/kds_s2000w_client.c | 7 ------- src/kds_s2000w_handler.c | 28 +++++++++++++++++++++------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/kds_s2000w_client.c b/src/kds_s2000w_client.c index 3506cd1..a14edeb 100644 --- a/src/kds_s2000w_client.c +++ b/src/kds_s2000w_client.c @@ -1,6 +1,5 @@ #include #include -#include #include #include "kds_s2000w_client.h" @@ -67,12 +66,6 @@ int kds_s2000w_client_open_session(const char* username, response* response) CURLcode result = curl_easy_perform(curl); curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response->code); - if (response->code == 408) { - sleep(1); - 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); diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index 4115a78..835e5c8 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include "kds_s2000w_handler.h" @@ -74,20 +75,33 @@ current_state* kds_s2000w_handler_open() resp = kds_s2000w_client_response_init(); int result = kds_s2000w_client_open_session("hhaalo", resp); - if (result != 0 || resp->code == 404) + if (resp->code == 408) { + kds_s2000w_client_response_free(resp); + resp = NULL; + sleep(1); + resp = kds_s2000w_client_response_init(); + result = kds_s2000w_client_open_session("hhaalo", resp); + } + + if (result != 0 || resp->code == 404) { + kds_s2000w_client_response_free(resp); + resp = NULL; return state; + } - if (resp->code == 423) + if (resp->code == 423) { + kds_s2000w_client_response_free(resp); + resp = NULL; state->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); - state->sessionid = json_object_get_int64(valueObj); - valueObj = NULL; + json_object* value_object = NULL; + json_object_object_get_ex(resObj, "SessionId", &value_object); + state->sessionid = json_object_get_int64(value_object); state->state = OPENED; + value_object = NULL; } json_object_put(resObj); -- 2.39.5