]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
parse session id
authorBastian Dehn <hhaalo@arcor.de>
Sun, 21 Jan 2024 10:39:11 +0000 (11:39 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 21 Jan 2024 10:39:11 +0000 (11:39 +0100)
src/kds_s2000w_handler.c

index a0cf9b7372c6e8022bbd322d27daf119c5802b5e..4d5959b15d6eaf9b45aa8788327d0df1f534d5eb 100644 (file)
@@ -3,6 +3,7 @@
 #include <stddef.h>
 #include <string.h>
 #include <curl/curl.h>
+#include <json-c/json.h>
 #include "kds_s2000w_handler.h"
 
 typedef struct {
@@ -21,8 +22,6 @@ size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata)
 
        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;
 }
@@ -43,11 +42,18 @@ void* kds_s2000w_handler_open()
                curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*) &resp);
                res = curl_easy_perform(curl);
 
+               json_object* resObj = json_tokener_parse(resp.data);
+               json_object* valueObj = NULL;
+               json_object_object_get_ex(resObj, "SessionId", &valueObj);
+               int64_t sessionid = json_object_get_int64(valueObj);
+
+               printf("sessionid: %li\n", sessionid);
                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;
+               json_object_put(resObj);
                curl_easy_cleanup(curl);
        }
        return NULL;