diff options
author | rautenberg <rautenberg@in-silico.ch> | 2013-04-08 10:26:10 +0200 |
---|---|---|
committer | rautenberg <rautenberg@in-silico.ch> | 2013-04-08 10:26:10 +0200 |
commit | bf5e9cb689daa7202a269f8b3f7076fad2fdf237 (patch) | |
tree | c2dd3ebf228a90b0e315e708c917320676c2b6c3 /lib/overwrite.rb | |
parent | 4986315f6b68829e2aa04ebc3470b32f4fcebc40 (diff) |
fix accessible? check for ssl
Diffstat (limited to 'lib/overwrite.rb')
-rw-r--r-- | lib/overwrite.rb | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/lib/overwrite.rb b/lib/overwrite.rb index c2c06dd..d1f3d9d 100644 --- a/lib/overwrite.rb +++ b/lib/overwrite.rb @@ -89,21 +89,16 @@ module URI end def self.accessible?(uri, subjectid=nil) - if URI.task? uri or URI.compound? uri - # just try to get a response, valid tasks may return codes > 400 - Net::HTTP.get_response(URI.parse(uri)) - true + parsed_uri = URI.parse(uri + (subjectid ? "?subjectid=#{CGI.escape subjectid}" : "")) + http_code = URI.task?(uri) ? 600 : 400 + unless URI.ssl? uri + Net::HTTP.get_response(parsed_uri).code.to_i < http_code else - parsed_uri = URI.parse(uri + (subjectid ? "?subjectid=#{CGI.escape subjectid}" : "")) - unless URI.ssl? uri - Net::HTTP.get_response(parsed_uri).code.to_i < 400 - else - http = Net::HTTP.new(parsed_uri.host, parsed_uri.port) - http.use_ssl = true - http.verify_mode = OpenSSL::SSL::VERIFY_NONE - request = Net::HTTP::Get.new(parsed_uri.request_uri) - http.request(request).code.to_i < 400 - end + http = Net::HTTP.new(parsed_uri.host, parsed_uri.port) + http.use_ssl = true + http.verify_mode = OpenSSL::SSL::VERIFY_NONE + request = Net::HTTP::Get.new(parsed_uri.request_uri) + http.request(request).code.to_i < http_code end rescue false |