From: Patrick Date: Tue, 14 Nov 2023 12:13:25 +0000 (+0100) Subject: remove curl http backend X-Git-Url: https://gitweb.ps.run/matrix_esp_thesis/commitdiff_plain/ad427c27367919838af46a1ab0009b4dc30339b3?ds=sidebyside remove curl http backend --- diff --git a/src/matrix_http_curl.c b/src/matrix_http_curl.c deleted file mode 100644 index 577c5ec..0000000 --- a/src/matrix_http_curl.c +++ /dev/null @@ -1,113 +0,0 @@ -#include "matrix.h" - -#include - - - -typedef struct { - char * ptr; - int cap; - int len; -} WriteStr; - -// typedef struct { -// Str str; -// size_t pos; -// } ReadStr; - -size_t curlWriteString(char *ptr, size_t size, size_t nmemb, void *userdata) { - WriteStr *writeStr = (WriteStr *)userdata; - - int toWrite = (int)size*nmemb; - - int writable = writeStr->cap - writeStr->len; - int gonnaWrite = writable < (toWrite) ? writable : (toWrite); - - for (int i = 0; i < gonnaWrite; i++) - { - int offset = writeStr->len; - writeStr->ptr[i+offset] = ptr[i]; - } - - writeStr->len += gonnaWrite; - - return gonnaWrite; -} -// size_t curlReadString(char *dst, size_t size, size_t nmemb, void *userdata) { -// ReadStr *readStr = (ReadStr *)userdata; - -// size_t copyAmount = size*nmemb; -// if (copyAmount > (readStr->str.len - readStr->pos)) { -// copyAmount = (readStr->str.len - readStr->pos); -// } - -// memcpy(dst, readStr->str.str + readStr->pos, copyAmount); -// readStr->pos += copyAmount; -// return copyAmount; -// } - -CURLcode -curlPerform(CURL *curl) { - // struct curl_slist *list = NULL; - // list = curl_slist_append(list, uTokenHeaderStr); - - // curl_easy_setopt(curl, CURLOPT_HTTPHEADER, list); - - CURLcode result = curl_easy_perform(curl); - - // curl_slist_free_all(list); - - return result; -} - - - -bool -MatrixHttpPost( - MatrixClient * client, - const char * url, - char * requestBuffer, int requestLen, - char * outResponseBuffer, int outResponseCap, int * outResponseLen -) { - CURL *curl = (CURL *)client->httpUserData; - - CURLcode res; - - if(curl) { - int urlLen = strlen(url); - - char fullUrl[MAX_URL_LEN]; - for (int i = 0; i < client->serverLen; i++) - fullUrl[i] = client->server[i]; - for (int i = 0; i < urlLen; i++) - fullUrl[client->serverLen+i] = url[i]; - fullUrl[client->serverLen+urlLen] = '\0'; - curl_easy_setopt(curl, CURLOPT_URL, fullUrl); - - curl_easy_setopt(curl, CURLOPT_POST, 1L); - curl_easy_setopt(curl, CURLOPT_POSTFIELDS, requestBuffer); - curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, requestLen); - - curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L); - curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L); - - WriteStr writeStr = { - outResponseBuffer, - outResponseCap, - 0 - }; - curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curlWriteString); - curl_easy_setopt(curl, CURLOPT_WRITEDATA, &writeStr); - - res = curlPerform(curl); - - *outResponseLen = writeStr.len; - - if(res != CURLE_OK) - fprintf(stderr, "curl_easy_perform() failed: %s\n", - curl_easy_strerror(res)); - } - - - return res == CURLE_OK; -} \ No newline at end of file