diff options
author | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2021-06-19 18:39:17 +0800 |
---|---|---|
committer | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2021-06-19 18:39:17 +0800 |
commit | 6374c26a020f7c0f551ee62078f7cfac61e14128 (patch) | |
tree | d888981df48f59d1d6c2e42985ccdf8fbbf03a23 /client.c | |
parent | 3eb1ed77e876778e846e2e15515716ea36dc1457 (diff) |
request not inline any more
Diffstat (limited to 'client.c')
-rw-r--r-- | client.c | 33 |
1 files changed, 15 insertions, 18 deletions
@@ -1,40 +1,34 @@ +#include <stdlib.h> +#include <string.h> +#ifndef __EMSCRIPTEN__ +#include <curl/curl.h> +#endif #include "request.h" #include "icclient.h" -char *sampleurl; char *image_dir; +#ifndef __EMSCRIPTEN__ +char *sampleurl; char *certificate = NULL; +#endif -extern inline void request(void (*)(icclient_response *), void (*)(void *), struct body *, char *, ...); extern void handle_results(icclient_response *); -#ifndef __EMSCRIPTEN__ -size_t append(char *data, size_t size, size_t nmemb, icclient_response *response) -{ - size_t realsize = size * nmemb; - response->data = realloc(response->data, response->numBytes + realsize + 1); - memcpy(&(response->data[response->numBytes]), data, realsize); - response->numBytes += realsize; - response->data[response->numBytes] = '\0'; - return realsize; -} -#endif - void icclient_init(const char *url, const char *dir, const char *cert) { + image_dir = malloc(strlen(dir) + 1); + strcpy(image_dir, dir); +#ifndef __EMSCRIPTEN__ size_t length = strlen(url); size_t append = url[length - 1] != '/'; sampleurl = malloc(length + append + 1); strcpy(sampleurl, url); if (append) strcat(sampleurl, "/"); - image_dir = malloc(strlen(dir) + 1); - strcpy(image_dir, dir); if (certificate) { certificate = malloc(strlen(certificate) + 1); strcpy(certificate, cert); } -#ifndef __EMSCRIPTEN__ curl_global_init(CURL_GLOBAL_SSL); #endif } @@ -93,14 +87,17 @@ void icclient_free_response(icclient_response *response) free(response->userData); #ifdef __EMSCRIPTEN__ emscripten_fetch_close(response); +#else + free(response->data); + free(response); #endif } void icclient_cleanup() { + free(image_dir); #ifndef __EMSCRIPTEN__ free(sampleurl); - free(image_dir); if (certificate) free(certificate); curl_global_cleanup(); |