#include <libintl.h>
#define _(str) gettext(str)
+#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
};
static CURL *curl;
+static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
static size_t cbk_curl(void *buffer, size_t size, size_t nmemb, void *userp)
{
char *http_get(const char *url, const char *content)
{
struct ucontent chunk;
+ int result;
chunk.data = malloc(1);
chunk.len = 0;
+ pthread_mutex_lock(&lock);
+
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_VERBOSE, 0);
if (content) {
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, cbk_curl);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&chunk);
- if (curl_easy_perform(curl) == CURLE_OK)
+ result = curl_easy_perform(curl);
+
+ pthread_mutex_unlock(&lock);
+
+ if (result == CURLE_OK)
return chunk.data;
free(chunk.data);