commit 4b376782076037415d1f6d8702369ecd290d3dd8
parent 2fd7e20380c52b78ce7b7207423a5ec8432fab5e
Author: Toby Jaffey <toby@ringtailsoftware.co.uk>
Date: Sat, 10 Dec 2022 13:15:29 +0000
Ensure that pd variable stays in scope while curl request runs
Fix for #19
Diffstat:
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git 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);