equal
deleted
inserted
replaced
51 local function destroy_request(request) |
51 local function destroy_request(request) |
52 local conn = request.conn; |
52 local conn = request.conn; |
53 if conn then |
53 if conn then |
54 request.conn = nil; |
54 request.conn = nil; |
55 conn:close() |
55 conn:close() |
|
56 end |
|
57 end |
|
58 |
|
59 local function cancel_request(request, reason) |
|
60 if request.callback then |
|
61 request.callback(reason or "cancelled", 0, request); |
|
62 request.callback = nil; |
|
63 end |
|
64 if request.conn then |
|
65 destroy_request(request); |
56 end |
66 end |
57 end |
67 end |
58 |
68 |
59 local function request_reader(request, data, err) |
69 local function request_reader(request, data, err) |
60 if not request.parser then |
70 if not request.parser then |
103 log("debug", "Request '%s': Calling callback, status %s", req.id, code or "---"); |
113 log("debug", "Request '%s': Calling callback, status %s", req.id, code or "---"); |
104 return log_if_failed(req.id, xpcall(callback, handleerr, content, code, response, request)); |
114 return log_if_failed(req.id, xpcall(callback, handleerr, content, code, response, request)); |
105 end |
115 end |
106 req.reader = request_reader; |
116 req.reader = request_reader; |
107 req.state = "status"; |
117 req.state = "status"; |
|
118 req.cancel = cancel_request; |
108 |
119 |
109 requests[req.conn] = req; |
120 requests[req.conn] = req; |
110 |
121 |
111 -- Validate certificate |
122 -- Validate certificate |
112 if not req.insecure and conn:ssl() then |
123 if not req.insecure and conn:ssl() then |