From b2543051d0629ab11adae1a64a1aed2105a1b9d9 Mon Sep 17 00:00:00 2001 From: Azul Date: Sat, 23 Sep 2017 15:10:11 +0200 Subject: refactor: move error detection into key_info Still needs something better than all these elsifs though --- lib/nickserver/hkp/key_info.rb | 14 ++++++++++++++ lib/nickserver/hkp/parse_key_info.rb | 25 +++++-------------------- lib/nickserver/hkp/v_index_response.rb | 23 ++++------------------- 3 files changed, 23 insertions(+), 39 deletions(-) diff --git a/lib/nickserver/hkp/key_info.rb b/lib/nickserver/hkp/key_info.rb index 5c8b845..568a798 100644 --- a/lib/nickserver/hkp/key_info.rb +++ b/lib/nickserver/hkp/key_info.rb @@ -21,6 +21,20 @@ module Nickserver::Hkp @uids = extract_uids(uid_lines) end + def error + if keylen < 2048 + 'key length is too short.' + elsif expired? + 'key expired.' + elsif revoked? + 'key revoked.' + elsif disabled? + 'key disabled.' + elsif expirationdate && expirationdate < Time.now + 'key expired' + end + end + def keyid properties.first end diff --git a/lib/nickserver/hkp/parse_key_info.rb b/lib/nickserver/hkp/parse_key_info.rb index c23751b..a6f170c 100644 --- a/lib/nickserver/hkp/parse_key_info.rb +++ b/lib/nickserver/hkp/parse_key_info.rb @@ -39,7 +39,7 @@ module Nickserver::Hkp protected def keys(uid) - key_infos(uid).reject { |key| error_for_key(key) } + key_infos(uid).reject(&:error) end def msg(uid) @@ -62,13 +62,12 @@ module Nickserver::Hkp end def errors(uid) - key_infos(uid).map { |key| error_for_key(key) }.compact + key_infos(uid).map(&:error).compact end def error_messages(uid) key_infos(uid).map do |key| - err = error_for_key(key) - error_message(uid, key, err) + error_message(uid, key) end.compact end @@ -90,22 +89,8 @@ module Nickserver::Hkp status == 200 end - def error_message(uid, key, err) - "Ignoring key #{key.keyid} for #{uid}: #{err}" if err - end - - def error_for_key(key) - if key.keylen < 2048 - 'key length is too short.' - elsif key.expired? - 'key expired.' - elsif key.revoked? - 'key revoked.' - elsif key.disabled? - 'key disabled.' - elsif key.expirationdate && key.expirationdate < Time.now - 'key expired' - end + def error_message(uid, key) + "Ignoring key #{key.keyid} for #{uid}: #{key.error}" if key.error end end end diff --git a/lib/nickserver/hkp/v_index_response.rb b/lib/nickserver/hkp/v_index_response.rb index a2a7b0d..a44af51 100644 --- a/lib/nickserver/hkp/v_index_response.rb +++ b/lib/nickserver/hkp/v_index_response.rb @@ -28,7 +28,7 @@ module Nickserver::Hkp end def keys - key_infos.reject { |key| error_for_key(key) } + key_infos.reject &:error end def msg @@ -57,8 +57,7 @@ module Nickserver::Hkp def error_messages key_infos.map do |key| - err = error_for_key(key) - error_message(key, err) + error_message(key) end.compact end @@ -74,22 +73,8 @@ module Nickserver::Hkp end end - def error_message(key, err) - "Ignoring key #{key.keyid} for #{nick}: #{err}" if err - end - - def error_for_key(key) - if key.keylen < 2048 - 'key length is too short.' - elsif key.expired? - 'key expired.' - elsif key.revoked? - 'key revoked.' - elsif key.disabled? - 'key disabled.' - elsif key.expirationdate && key.expirationdate < Time.now - 'key expired' - end + def error_message(key) + "Ignoring key #{key.keyid} for #{nick}: #{key.error}" if key.error end end end -- cgit v1.2.3