summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzul <azul@riseup.net>2017-09-23 15:10:11 +0200
committerAzul <azul@riseup.net>2017-09-23 16:53:27 +0200
commitb2543051d0629ab11adae1a64a1aed2105a1b9d9 (patch)
tree855e042cdac61296e2386ff1f7643174ecbdafbb
parentf40ef14010af08c49810c0a6a2349072948170e6 (diff)
refactor: move error detection into key_info
Still needs something better than all these elsifs though
-rw-r--r--lib/nickserver/hkp/key_info.rb14
-rw-r--r--lib/nickserver/hkp/parse_key_info.rb25
-rw-r--r--lib/nickserver/hkp/v_index_response.rb23
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