diff options
Diffstat (limited to 'lib/nickserver/server.rb')
-rw-r--r-- | lib/nickserver/server.rb | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/lib/nickserver/server.rb b/lib/nickserver/server.rb index cc6e3dd..9e1551b 100644 --- a/lib/nickserver/server.rb +++ b/lib/nickserver/server.rb @@ -92,20 +92,23 @@ module Nickserver end def get_key_from_uid(uid) - fetcher = if local_address?(uid) - Nickserver::Couch::FetchKey.new + if local_address?(uid) + @fetcher = Nickserver::Couch::FetchKey.new + @fetcher.get(uid) do |response| + send_response(status: response.status, content: response.content) + end else - Nickserver::Hkp::FetchKey.new + @fetcher = Nickserver::Hkp::FetchKey.new + @fetcher.get(uid).callback {|key| + yield key + }.errback {|status, msg| + if status == 404 + send_not_found + else + send_response(status: status, content: msg) + end + } end - fetcher.get(uid).callback {|key| - yield key - }.errback {|status, msg| - if status == 404 - send_not_found - else - send_response(status: status, content: msg) - end - } end def format_response(map) |