summaryrefslogtreecommitdiff
path: root/xs_curl.h
diff options
context:
space:
mode:
authorToby Jaffey <toby@ringtailsoftware.co.uk>2022-12-10 13:15:29 +0000
committerToby Jaffey <toby@ringtailsoftware.co.uk>2022-12-10 13:15:29 +0000
commit4b376782076037415d1f6d8702369ecd290d3dd8 (patch)
treecb8a400da034e911309df95e924f3d3f5ff45407 /xs_curl.h
parent2fd7e20380c52b78ce7b7207423a5ec8432fab5e (diff)
Ensure that pd variable stays in scope while curl request runs
Fix for #19
Diffstat (limited to 'xs_curl.h')
-rw-r--r--xs_curl.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/xs_curl.h b/xs_curl.h
index b769e2f..d024379 100644
--- a/xs_curl.h
+++ b/xs_curl.h
@@ -93,6 +93,7 @@ d_char *xs_http_request(char *method, char *url, d_char *headers,
struct curl_slist *list = NULL;
char *k, *v, *p;
long lstatus;
+ struct _payload_data pd;
response = xs_dict_new();
@@ -128,7 +129,9 @@ d_char *xs_http_request(char *method, char *url, d_char *headers,
sprintf(tmp, "content-length: %d", b_size);
list = curl_slist_append(list, tmp);
- struct _payload_data pd = { body, b_size, 0 };
+ pd.data = body;
+ pd.size = b_size;
+ pd.offset = 0;
curl_easy_setopt(curl, CURLOPT_READDATA, &pd);
curl_easy_setopt(curl, CURLOPT_READFUNCTION, _post_callback);