Browse Source

Ensure that pd variable stays in scope while curl request runs
Fix for #19

Toby Jaffey 2 years ago
parent
commit
4b37678207
1 changed files with 4 additions and 1 deletions
  1. 4 1
      xs_curl.h

+ 4 - 1
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);