From eca533858b97ecf2f53c9db92eeacafaaf142bdc Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 21 Jan 2024 10:38:50 +0100 Subject: [PATCH] change response over struct --- src/kds_s2000w_handler.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index b05a4fd..a0cf9b7 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -5,16 +5,24 @@ #include #include "kds_s2000w_handler.h" +typedef struct { + char* data; + size_t size; +} response; + size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata) { - char* data = (char*) userdata; + response* data = (response*) userdata; size_t fullsize = size * nmemb; - data = realloc(userdata, fullsize + 1); - if (!data) + data->data = realloc(data->data, fullsize + 1); + if (!data->data) return 0; - memcpy(data, ptr, fullsize); + memcpy(data->data, ptr, fullsize); + data->size = fullsize + 1; + printf("writed data %s\n", data->data); + printf("data address callback %x\n", data->data); return fullsize; } @@ -26,18 +34,20 @@ void* kds_s2000w_handler_open() if(curl) { printf("curl\n"); CURLcode res; - char* data = NULL; + response resp = {0}; + printf("open data %x\n", &resp); curl_easy_setopt(curl, CURLOPT_URL, "http://scanner.lan.hhaalo.de/api/session"); curl_easy_setopt(curl, CURLOPT_POST, 1L); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"OCPUserName\":\"hhaalo\"}"); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); - curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*) data); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*) &resp); res = curl_easy_perform(curl); - printf("data: %s\n", data); - free(data); - data = NULL; + printf("data address open: %x\n", resp.data); + printf("data: %s\n", resp.data); printf("curlcode: %li\n", res); + free(resp.data); + resp.data = NULL; curl_easy_cleanup(curl); } return NULL; -- 2.39.5