char* url = NULL;
struct curl_slist* headers = NULL;
CURLcode result = 0;
- char header_str[80];
+ char header_str[80];
+ FILE* stream = NULL;
+ char* buffer = NULL;
+ size_t* sizeloc = NULL;
curl = curl_easy_init();
if(!curl)
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POST, 1L);
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, 0L);
- curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, _kds_s2000w_client_callback);
- curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*) response);
+ buffer = malloc(sizeof(char));
+ sizeloc = malloc(sizeof(size_t));
+ stream = open_memstream(&buffer, sizeloc);
+ curl_easy_setopt(curl, CURLOPT_WRITEDATA, stream);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
result = curl_easy_perform(curl);
if (result != CURLE_OK)
fprintf(stderr, "ERROR: curl_easy_perform: %s\n", curl_easy_strerror(result));
+ fflush(stream);
+ _kds_s2000w_client_stream_to_response(stream, response, sizeloc);
+ fclose(stream);
+
curl_url_cleanup(url_handler);
url_handler = NULL;
curl_free(url);
url = NULL;
curl_easy_cleanup(curl);
curl = NULL;
+ free(buffer);
+ buffer = NULL;
+ free(sizeloc);
+ sizeloc = NULL;
return result;
}