diff options
author | azul <azul@riseup.net> | 2017-07-24 05:22:15 +0000 |
---|---|---|
committer | azul <azul@riseup.net> | 2017-07-24 05:22:15 +0000 |
commit | cdad3bedd7d90957d836d9d9c339e6b9dfc8b8d1 (patch) | |
tree | 2707fe4563d6be32cd6a9b2d1cb4c1f5f303273c /lib/nickserver/dispatcher.rb | |
parent | 38dd81116b85c103dbc5e9f08a8ffce26238921a (diff) | |
parent | 406234367544a4207141230683dddaccd98fb21a (diff) |
Merge branch 'fix/fd-leak' into 'master'
fix: filedescriptor leak from http_adapters
See merge request !13
Diffstat (limited to 'lib/nickserver/dispatcher.rb')
-rw-r--r-- | lib/nickserver/dispatcher.rb | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/lib/nickserver/dispatcher.rb b/lib/nickserver/dispatcher.rb index 71e71cf..dfd53e5 100644 --- a/lib/nickserver/dispatcher.rb +++ b/lib/nickserver/dispatcher.rb @@ -24,21 +24,23 @@ require 'nickserver/request_handlers/fingerprint_handler' module Nickserver class Dispatcher - - def initialize(responder) + def initialize(responder, adapter = nil) @responder = responder + @adapter = adapter end def respond_to(params, headers) request = Nickserver::Request.new params, headers response = handle request - send_response response + responder.respond response.status, response.content end protected + attr_reader :responder, :adapter + def handle(request) - handler_chain.handle request + handler_chain.handle request, adapter end def handler_chain @@ -51,7 +53,7 @@ module Nickserver RequestHandlers::LeapEmailHandler, RequestHandlers::HkpEmailHandler, RequestHandlers::FingerprintHandler, - Proc.new {|_req| proxy_error_response }, + Proc.new { proxy_error_response }, Proc.new { Nickserver::Response.new(404, "404 Not Found\n") } chain.continue_on HTTP::ConnectionError return chain @@ -65,11 +67,5 @@ module Nickserver end end - def send_response(response) - responder.respond response.status, response.content - end - - attr_reader :responder - end end |