From 2d542a79796fb4568871c4a634ce4d3b311ffd9d Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Sun, 4 Aug 2019 11:33:58 +0200 Subject: Fixed curl call orders --- common/http.c | 9 ++++++--- restapi/auth.c | 1 + restapi/im.c | 1 - 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/common/http.c b/common/http.c index 275a18f..88e15cd 100644 --- a/common/http.c +++ b/common/http.c @@ -53,6 +53,9 @@ void http_clean(void) const char * http_get(const char* path) { + curl_easy_reset(curl); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &writeCallback); + curl_easy_setopt(curl, CURLOPT_POST, 0); return http_perform(path, NULL); } @@ -80,9 +83,6 @@ const char * http_perform(const char* path, const char* postfields) buffer_fill = 0; } - curl_easy_reset(curl); - curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &writeCallback); - const char * weburl = config_get_web_url(); size_t weburl_len = strlen(weburl); size_t path_len = strlen(path); @@ -106,6 +106,9 @@ const char * http_perform(const char* path, const char* postfields) const char * http_post(const char* path, const char* postfields) { + curl_easy_reset(curl); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &writeCallback); + if (postfields == NULL) curl_easy_setopt(curl, CURLOPT_POST, 1); return http_perform(path, postfields); diff --git a/restapi/auth.c b/restapi/auth.c index e3f1b74..ad13798 100644 --- a/restapi/auth.c +++ b/restapi/auth.c @@ -60,6 +60,7 @@ restapi_login(const char* username, const char* password) printf("userid: %s\nauthtoken: %s\n", userId->valuestring, authToken->valuestring); http_add_header("X-User-Id", userId->valuestring); http_add_header("X-Auth-Token", authToken->valuestring); + http_add_header("Content-type", "application/json"); } else { const cJSON* msg = cJSON_GetObjectItemCaseSensitive(json, "message"); if (cJSON_IsString(msg) && msg->valuestring != NULL) diff --git a/restapi/im.c b/restapi/im.c index 6b9f75c..0c49cb0 100644 --- a/restapi/im.c +++ b/restapi/im.c @@ -22,7 +22,6 @@ restapi_im_close(const char* username) strcpy(login_args, LOGIN_ARG_PRE); strcpy(login_args + pre_len, username); strcpy(login_args + pre_len + user_len, LOGIN_ARG_POST); - http_add_header("Content-type", "application/json"); const char* buffer = http_post("/api/v1/im.close", login_args); free(login_args); -- cgit v1.2.3