find_library(SANE NAMES sane REQUIRED)
find_package(CURL REQUIRED)
+find_package(JSON-C REQUIRED)
add_library("sane-kds_s2000w_net"
SHARED
"src/kds_s2000w_handler.c")
set_target_properties("sane-kds_s2000w_net" PROPERTIES VERSION 1)
-target_link_libraries("sane-kds_s2000w_net" curl)
+target_link_libraries("sane-kds_s2000w_net" json-c curl)
install(TARGETS "sane-kds_s2000w_net"
DESTINATION "/usr/lib/x86_64-linux-gnu/sane")
\ No newline at end of file
#include <stdio.h>
+#include <stdlib.h>
#include <stddef.h>
+#include <string.h>
#include <curl/curl.h>
#include "kds_s2000w_handler.h"
+size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata)
+{
+ char* data = (char*) userdata;
+ size_t fullsize = size * nmemb;
+
+ data = realloc(userdata, fullsize + 1);
+ if (!data)
+ return 0;
+
+ memcpy(data, ptr, fullsize);
+
+ return fullsize;
+}
+
void* kds_s2000w_handler_open()
{
printf("open\n");
if(curl) {
printf("curl\n");
CURLcode res;
+ char* data = NULL;
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);
res = curl_easy_perform(curl);
+
+ printf("data: %s\n", data);
+ free(data);
+ data = NULL;
printf("curlcode: %li\n", res);
curl_easy_cleanup(curl);
}