add more logging to FinalDestination

This commit is contained in:
Gerhard Schlager 2017-10-31 12:08:34 +01:00
parent b3e61ebb38
commit 8c27f28dcb
2 changed files with 15 additions and 3 deletions

View File

@ -33,8 +33,6 @@ class FileHelper
url = "https:" + url if url.start_with?("//") url = "https:" + url if url.start_with?("//")
raise Discourse::InvalidParameters.new(:url) unless url =~ /^https?:\/\// raise Discourse::InvalidParameters.new(:url) unless url =~ /^https?:\/\//
uri =
dest = FinalDestination.new( dest = FinalDestination.new(
url, url,
max_redirects: follow_redirect ? 5 : 1, max_redirects: follow_redirect ? 5 : 1,

View File

@ -93,6 +93,7 @@ class FinalDestination
if @limit < 0 if @limit < 0
@status = :too_many_redirects @status = :too_many_redirects
log(:warn, "FinalDestination could not resolve URL (too many redirects): #{@uri}")
return nil return nil
end end
@ -103,7 +104,11 @@ class FinalDestination
end end
end end
return nil unless validate_uri unless validate_uri
log(:warn, "FinalDestination could not resolve URL (invalid URI): #{@uri}")
return nil
end
headers = request_headers headers = request_headers
response = Excon.public_send(@http_verb, response = Excon.public_send(@http_verb,
@uri.to_s, @uri.to_s,
@ -175,8 +180,10 @@ class FinalDestination
@status = :failure @status = :failure
@status_code = response.status @status_code = response.status
log(:warn, "FinalDestination could not resolve URL (status #{response.status}): #{@uri}")
nil nil
rescue Excon::Errors::Timeout rescue Excon::Errors::Timeout
log(:warn, "FinalDestination could not resolve URL (timeout): #{@uri}")
nil nil
end end
@ -246,6 +253,13 @@ class FinalDestination
SiteSetting.blacklist_ip_blocks.split('|').map { |r| IPAddr.new(r) rescue nil }.compact SiteSetting.blacklist_ip_blocks.split('|').map { |r| IPAddr.new(r) rescue nil }.compact
end end
def log(log_level, message)
Rails.logger.public_send(
log_level,
"#{RailsMultisite::ConnectionManagement.current_db}: #{message}"
)
end
def self.standard_private_ranges def self.standard_private_ranges
@private_ranges ||= [ @private_ranges ||= [
IPAddr.new('127.0.0.1'), IPAddr.new('127.0.0.1'),