# HG changeset patch # User jbe # Date 1427023306 -3600 # Node ID c51f283dfb0de87e9a943983a1c56f919b543994 # Parent a9ad9186a922e6b0136b42faf70ae186377a0dfa Request/response timeouts diff -r a9ad9186a922 -r c51f283dfb0d framework/bin/mcp.lua --- a/framework/bin/mcp.lua Sun Mar 22 04:08:53 2015 +0100 +++ b/framework/bin/mcp.lua Sun Mar 22 12:21:46 2015 +0100 @@ -217,21 +217,30 @@ -- invoke moonbridge if WEBMCP_MODE == "listen" then local http_options = request.get_http_options() - local min_requests_per_connect = http_options.min_requests_per_connect or 90 - local max_requests_per_connect = http_options.max_requests_per_connect or 100 + local min_requests_per_fork = http_options.min_requests_per_fork or 50 + local max_requests_per_fork = http_options.max_requests_per_fork or 100 + local request_header_timeout = http_options.request_header_timeout or 10 + local request_timeout = http_options.request_timeout + local response_timeout = http_options.response_timeout or 60 local http = require("moonbridge_http") for i, listener in ipairs(listeners) do local request_count = 0 local function inner_handler(http_request) + if http_options.request_timeout then + timeout(request_timeout) + http_request:process_request_body() + end + timeout(response_timeout) request_count = request_count + 1 - request.handler(http_request, request_count >= max_requests_per_connect) + request.handler(http_request, request_count >= max_requests_per_fork) + timeout(request_header_timeout) end local outer_handler = http.generate_handler(inner_handler, http_options) - --listener.prepare = execute.postfork_initializers listener.prepare = postfork_init listener.connect = function(socket) + timeout(request_header_timeout) outer_handler(socket) - return request_count < min_requests_per_connect + return request_count < min_requests_per_fork end listener.finish = execute.finalizers moonbridge_listen(listener)