#include <curl/curl.h>
#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;
}
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;