net.http: When HTTP request fails due to a network or SSL error, call the callback...
authorMatthew Wild <mwild1@gmail.com>
Wed, 17 Apr 2013 23:08:58 +0000 (00:08 +0100)
committerMatthew Wild <mwild1@gmail.com>
Wed, 17 Apr 2013 23:08:58 +0000 (00:08 +0100)
net/http.lua

index 4eb4a2ac261b8d37af973106b08ed73a3e62a050..639ecf6a58c2f760fc35332b887a57b70da6ccfa 100644 (file)
@@ -66,24 +66,29 @@ end
 function listener.ondisconnect(conn, err)
        local request = requests[conn];
        if request and request.conn then
-               request:reader(nil);
+               request:reader(nil, err);
        end
        requests[conn] = nil;
 end
 
-local function request_reader(request, data)
+local function request_reader(request, data, err)
        if not request.parser then
-               if not data then return; end
-               local function success_cb(r)
+               local function error_cb(reason)
                        if request.callback then
-                               request.callback(r.body, r.code, r, request);
+                               request.callback(reason or "connection-closed", 0, request);
                                request.callback = nil;
                        end
                        destroy_request(request);
                end
-               local function error_cb(r)
+               
+               if not data then
+                       error_cb(err);
+                       return;
+               end
+               
+               local function success_cb(r)
                        if request.callback then
-                               request.callback(r or "connection-closed", 0, request);
+                               request.callback(r.body, r.code, r, request);
                                request.callback = nil;
                        end
                        destroy_request(request);