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;
}
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");