This is an automated email from the ASF dual-hosted git repository.

sebb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/whimsy.git


The following commit(s) were added to refs/heads/master by this push:
     new 92fcb75  Localise URI setup; check request is successful
92fcb75 is described below

commit 92fcb75190c9f3b2e8419d90824f27cd03d5b14e
Author: Sebb <[email protected]>
AuthorDate: Fri Mar 13 17:38:08 2020 +0000

    Localise URI setup; check request is successful
---
 .../views/actions/check-signature.json.rb          | 35 +++++++++++++---------
 1 file changed, 21 insertions(+), 14 deletions(-)

diff --git a/www/secretary/workbench/views/actions/check-signature.json.rb 
b/www/secretary/workbench/views/actions/check-signature.json.rb
index e5f7195..1608d0e 100644
--- a/www/secretary/workbench/views/actions/check-signature.json.rb
+++ b/www/secretary/workbench/views/actions/check-signature.json.rb
@@ -14,6 +14,23 @@ ENV['GNUPGHOME'] = GNUPGHOME if GNUPGHOME
 KEYSERVERS = %w{pgp.ocf.berkeley.edu pgpkeys.uk}
 
 # ** N.B. ensure the keyserver URI is known below **
+def getServerURI(server, keyid)
+  if server == 'keys.openpgp.org'
+    if keyid.length == 40
+      uri = "https://#{server}/vks/v1/by-fingerprint/#{keyid}";
+    else
+      uri = "https://#{server}/vks/v1/by-keyid/#{keyid}";
+    end
+  elsif server == 'sks-keyservers.net' or server == 'pgpkeys.uk' or server == 
'pgp.ocf.berkeley.edu'
+    uri = 
"https://#{server}/pks/lookup?search=0x#{keyid}&exact=on&options=mr&op=get";
+  elsif server == 'keyserver.ubuntu.com'
+    uri = "https://#{server}/pks/lookup?search=0x#{keyid}&op=get";
+  else
+    raise ArgumentError, "Don't know how to get key from #{server}"
+  end
+  Wunderbar.warn uri
+  return uri
+end
 
 MAX_KEY_SIZE = 20700 # don't import if the ascii keyfile is larger than this
 
@@ -26,6 +43,9 @@ def getURI(uri,file)
   uri = URI.parse(uri)
   Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do 
|https|
     https.request_get(uri.request_uri) do |res|
+      unless res.code == "200"
+        raise Exception.new "Get #{uri} failed with #{res.code}: 
#{res.message}"
+      end
       cl = res.content_length
       Wunderbar.warn "Content-Length: #{cl}"
       if cl > MAX_KEY_SIZE # fail early
@@ -89,23 +109,10 @@ begin
 
     KEYSERVERS.each do |server|
       found = false
-      if server == 'keys.openpgp.org'
-        if keyid.length == 40
-          uri = "https://#{server}/vks/v1/by-fingerprint/#{keyid}";
-        else
-          uri = "https://#{server}/vks/v1/by-keyid/#{keyid}";
-        end
-      elsif server == 'sks-keyservers.net' or server == 'pgpkeys.uk' or server 
== 'pgp.ocf.berkeley.edu'
-        uri = 
"https://#{server}/pks/lookup?search=0x#{keyid}&exact=on&options=mr&op=get";
-      elsif server == 'keyserver.ubuntu.com'
-        uri = "https://#{server}/pks/lookup?search=0x#{keyid}&op=get";
-      else
-        raise ArgumentError, "Don't know how to get key from #{server}"
-      end
-      Wunderbar.warn uri
       Dir.mktmpdir do |dir|
         begin
           tmpfile = File.join(dir, keyid)
+          uri = getServerURI(server, keyid)
           getURI(uri, tmpfile)
           out2, err2, rc2 = Open3.capture3 gpg,
             '--batch', '--import', tmpfile

Reply via email to