From fb688693c060e3e82705267363ee83b64c8cbdca Mon Sep 17 00:00:00 2001 From: Steve Kemp Date: Tue, 13 Nov 2012 20:40:46 +0000 Subject: follow redirects --- lib/custodian/protocol-tests/http.rb | 12 ++++++++++-- lib/custodian/protocol-tests/https.rb | 12 ++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) (limited to 'lib') 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 -- cgit v1.2.1