net/http.lua
branch0.11
changeset 11020 5176d9f727f6
parent 11019 355eae2f9ba8
child 11021 1f41f38a92f7
child 11067 30d3f6f85eb8
equal deleted inserted replaced
11019:355eae2f9ba8 11020:5176d9f727f6
    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