summaryrefslogtreecommitdiff
path: root/lib/overwrite.rb
diff options
context:
space:
mode:
authorrautenberg <rautenberg@in-silico.ch>2013-04-08 10:26:10 +0200
committerrautenberg <rautenberg@in-silico.ch>2013-04-08 10:26:10 +0200
commitbf5e9cb689daa7202a269f8b3f7076fad2fdf237 (patch)
treec2dd3ebf228a90b0e315e708c917320676c2b6c3 /lib/overwrite.rb
parent4986315f6b68829e2aa04ebc3470b32f4fcebc40 (diff)
fix accessible? check for ssl
Diffstat (limited to 'lib/overwrite.rb')
-rw-r--r--lib/overwrite.rb23
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