From: Bastian Dehn Date: Thu, 25 Jan 2024 16:52:06 +0000 (+0100) Subject: add wait for response X-Git-Tag: v1.0.0^2~463 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=042b1cb1b182686b6d2f270ea3cdf36d6f20c2ab;p=sane-kds-s2000w-net.git add wait for response --- diff --git a/src/kds_s2000w_client.c b/src/kds_s2000w_client.c index 19dc06f..4d268a1 100644 --- a/src/kds_s2000w_client.c +++ b/src/kds_s2000w_client.c @@ -1,8 +1,21 @@ #include #include +#include #include #include "kds_s2000w_client.h" +int _wait = 0; + +void _kds_s2000w_client_wait_for_response() +{ + for (int i = 0; i < 10; i++) { + if (!_wait) + break; + + sleep(1); + } +} + size_t _kds_s2000w_client_callback(char *ptr, size_t size, size_t nmemb, void *userdata) { response* data = (response*) userdata; @@ -15,6 +28,7 @@ size_t _kds_s2000w_client_callback(char *ptr, size_t size, size_t nmemb, void *u memcpy(data->data, ptr, fullsize); data->size = fullsize + 1; + _wait = 0; return fullsize; } @@ -57,7 +71,9 @@ int kds_s2000w_client_open_session(const char* username, response* response) curl_easy_setopt(curl, CURLOPT_POSTFIELDS, body); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, _kds_s2000w_client_callback); curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*) response); + _wait = 1; CURLcode result = curl_easy_perform(curl); + _kds_s2000w_client_wait_for_response(); curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response->code); curl_url_cleanup(url_handler);