Browse Source

Backport from xs.

default 1 year ago
parent
commit
912cfb5aaa
3 changed files with 10 additions and 7 deletions
  1. 7 3
      xs_curl.h
  2. 2 3
      xs_json.h
  3. 1 1
      xs_version.h

+ 7 - 3
xs_curl.h

@@ -96,7 +96,7 @@ xs_dict *xs_http_request(const char *method, const char *url,
     xs_dict *p;
     xs_str *k;
     xs_val *v;
-    long lstatus;
+    long lstatus = 0;
     struct _payload_data pd;
 
     response = xs_dict_new();
@@ -160,7 +160,7 @@ xs_dict *xs_http_request(const char *method, const char *url,
     curl_easy_setopt(curl, CURLOPT_HTTPHEADER, list);
 
     /* do it */
-    curl_easy_perform(curl);
+    CURLcode cc = curl_easy_perform(curl);
 
     curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &lstatus);
 
@@ -168,8 +168,12 @@ xs_dict *xs_http_request(const char *method, const char *url,
 
     curl_slist_free_all(list);
 
-    if (status != NULL)
+    if (status != NULL) {
+        if (lstatus == 0)
+            lstatus = -cc;
+
         *status = (int) lstatus;
+    }
 
     if (p_size != NULL)
         *p_size = ipd.size;

+ 2 - 3
xs_json.h

@@ -189,8 +189,7 @@ typedef enum {
     JS_COLON,
     JS_VALUE,
     JS_STRING,
-    JS_INTEGER,
-    JS_REAL,
+    JS_NUMBER,
     JS_TRUE,
     JS_FALSE,
     JS_NULL,
@@ -287,7 +286,7 @@ static xs_val *_xs_json_load_lexer(FILE *f, js_type *t)
 
         ungetc(c, f);
         if (fscanf(f, "%lf", &d) == 1) {
-            *t = JS_REAL;
+            *t = JS_NUMBER;
             v = xs_number_new(d);
         }
     }

+ 1 - 1
xs_version.h

@@ -1 +1 @@
-/* 4d883b5331e9275f2439b0983a0f978d1cd21e11 */
+/* ac9fa6f1941aa3e701bbb1da50b4d5a07090eddb */