summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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