From: Bastian Dehn Date: Sun, 28 Jan 2024 20:42:41 +0000 (+0100) Subject: fix response data chunks X-Git-Tag: v1.0.0^2~393 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=b16703175022712cad77620aa9a76332c2d0d0f5;p=sane-kds-s2000w-net.git fix response data chunks --- diff --git a/src/kds_s2000w_client.c b/src/kds_s2000w_client.c index 4fed621..3506cd1 100644 --- a/src/kds_s2000w_client.c +++ b/src/kds_s2000w_client.c @@ -7,14 +7,17 @@ size_t _kds_s2000w_client_callback(char *ptr, size_t size, size_t nmemb, void *userdata) { response* data = (response*) userdata; + size_t fullsize = size * nmemb; + char* new_data_ptr = realloc(data->data, data->size + fullsize + sizeof(char)); - data->data = realloc(data->data, fullsize); if (!data->data) return 0; - memcpy(data->data, ptr, fullsize); - data->size = fullsize; + data->data = new_data_ptr; + memcpy(&(data->data[data->size]), ptr, fullsize); + data->size += fullsize; + data->data[data->size] = 0; return fullsize; } diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index f66f987..f21bf00 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -311,7 +311,7 @@ void kds_s2000w_handler_set_option(int option, void* value, int* info) resp = kds_s2000w_client_response_init(); kds_s2000w_client_get_capabilities(resp); - printf("response data: %s", resp->data); + printf("response data: %s\n", resp->data); json_object* capabilities = json_tokener_parse(resp->data); json_object* default_values = json_object_object_get(capabilities, "Defaults");