]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
fix response data chunks
authorBastian Dehn <hhaalo@arcor.de>
Sun, 28 Jan 2024 20:42:41 +0000 (21:42 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 28 Jan 2024 20:42:41 +0000 (21:42 +0100)
src/kds_s2000w_client.c
src/kds_s2000w_handler.c

index 4fed621cf0ca909d60d2cd21c7765d1a90f78587..3506cd12c971c33b30b46fe1dc98ca11807c81f2 100644 (file)
@@ -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;
 }
index f66f987987a11294afcae44692833642daa9748a..f21bf002741ffcbc8b9dc39529bb2134d748eba6 100644 (file)
@@ -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");