From 7b649aee5d672b791b33a93a6dc9730c22e88068 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=A6=8C=20=EA=A6=AB=EA=A6=B6=20=EA=A6=8F=EA=A7=80?= =?UTF-8?q?=EA=A6=A6=EA=A6=BF=20=EA=A6=A7=20=EA=A6=AE=20=EA=A6=91=20?= =?UTF-8?q?=EA=A6=A9=20=EA=A6=AD=EA=A7=80?= Date: Sat, 7 Sep 2019 21:44:51 +0800 Subject: Preparing the user function to return info --- rtclient.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'rtclient.c') diff --git a/rtclient.c b/rtclient.c index a66cd56..44088ec 100644 --- a/rtclient.c +++ b/rtclient.c @@ -11,6 +11,7 @@ #include #include "rtclient.h" +typedef struct rt_user rt_user; static CURL *curl = NULL; static char *server_url = NULL; @@ -71,10 +72,18 @@ user_callback(void *contents, size_t size, size_t nmemb, void *writedata) char response[realsize + 1]; memcpy(&response[0], contents, realsize); response[realsize] = '\0'; - char *token = strtok(response, "\n"); - if (strstr(token, "200 Ok")) - while (token) - token = strtok(NULL, "\n"); + char *lines[21]; + char *line = strtok(response, "\n"); + if (strstr(line, "200 Ok")) { + rt_user *user = (rt_user *)writedata; + user = malloc(sizeof(rt_user)); + line = strtok(NULL, "\n"); + while (line) { + printf("Line:\n%s\n", line); + line = strtok(NULL, "\n"); + } + free(user); + } return realsize; } @@ -87,10 +96,13 @@ static inline void request(const char *path, const char *suffix) curl_easy_perform(curl); } -void rtclient_user(const char *name) +rt_user *rtclient_user(const char *name) { + rt_user *user = NULL; + curl_easy_setopt(curl, CURLOPT_WRITEDATA, user); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, user_callback); request("/REST/1.0/user/", name); + return user; } void rtclient_search(const char *query) -- cgit v1.2.3