summaryrefslogtreecommitdiff
path: root/lib/custodian
diff options
context:
space:
mode:
authorSteve Kemp <steve@steve.org.uk>2012-11-13 20:40:46 +0000
committerSteve Kemp <steve@steve.org.uk>2012-11-13 20:40:46 +0000
commitfb688693c060e3e82705267363ee83b64c8cbdca (patch)
treef6babce633b6d8d28bf381ac77ea9fe40dd3116a /lib/custodian
parentf0dff8eb742441901f6a88bf0ce078efe60e4085 (diff)
follow redirects
Diffstat (limited to 'lib/custodian')
-rwxr-xr-xlib/custodian/protocol-tests/http.rb12
-rwxr-xr-xlib/custodian/protocol-tests/https.rb12
2 files changed, 20 insertions, 4 deletions
diff --git a/lib/custodian/protocol-tests/http.rb b/lib/custodian/protocol-tests/http.rb
index f08856d..c7910c5 100755
--- a/lib/custodian/protocol-tests/http.rb
+++ b/lib/custodian/protocol-tests/http.rb
@@ -128,8 +128,16 @@ class HTTPTest
response = http.start { http.get("#{url.path}?#{url.query}") }
end
- @status = response.code.to_i
- @body = response.body
+ case response
+ when Net::HTTPRedirection
+ then
+ newURL = response['location'].match(/^http/)?
+ response['Location']:uri_str+response['Location']
+ return( getURL(newURL) )
+ else
+ @status = response.code.to_i
+ @body = response.body
+ end
return true
rescue Errno::EHOSTUNREACH => ex
diff --git a/lib/custodian/protocol-tests/https.rb b/lib/custodian/protocol-tests/https.rb
index 6c4a53a..0935ebb 100755
--- a/lib/custodian/protocol-tests/https.rb
+++ b/lib/custodian/protocol-tests/https.rb
@@ -129,8 +129,16 @@ class HTTPSTest
response = http.start { http.get("#{url.path}?#{url.query}") }
end
- @status = response.code.to_i
- @body = response.body
+ case response
+ when Net::HTTPRedirection
+ then
+ newURL = response['location'].match(/^http/)?
+ response['Location']:uri_str+response['Location']
+ return( getURL(newURL) )
+ else
+ @status = response.code.to_i
+ @body = response.body
+ end
return true
rescue Errno::EHOSTUNREACH => ex