From bf5e9cb689daa7202a269f8b3f7076fad2fdf237 Mon Sep 17 00:00:00 2001 From: rautenberg Date: Mon, 8 Apr 2013 10:26:10 +0200 Subject: fix accessible? check for ssl --- lib/overwrite.rb | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) (limited to 'lib/overwrite.rb') 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 -- cgit v1.2.3