From 919eef309820a421d6f5886b8ae811d3924cea97 Mon Sep 17 00:00:00 2001 From: MIYAGI Hikaru Date: Fri, 18 May 2018 08:47:22 +0900 Subject: [PATCH] User agent for WebFinger (#7531) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * User agent for WebFinger * local_domain → web_domain * 'http' is away accidentally... --- app/lib/request.rb | 6 +----- config/initializers/http_client_proxy.rb | 3 ++- lib/mastodon/version.rb | 4 ++++ 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/lib/request.rb b/app/lib/request.rb index 731bf76879d..397614fac9d 100644 --- a/app/lib/request.rb +++ b/app/lib/request.rb @@ -58,7 +58,7 @@ class Request def set_common_headers! @headers[REQUEST_TARGET] = "#{@verb} #{@url.path}" - @headers['User-Agent'] = user_agent + @headers['User-Agent'] = Mastodon::Version.user_agent @headers['Host'] = @url.host @headers['Date'] = Time.now.utc.httpdate @headers['Accept-Encoding'] = 'gzip' if @verb != :head @@ -83,10 +83,6 @@ class Request @headers.keys.join(' ').downcase end - def user_agent - @user_agent ||= "#{HTTP::Request::USER_AGENT} (Mastodon/#{Mastodon::Version}; +#{root_url})" - end - def key_id case @key_id_format when :acct diff --git a/config/initializers/http_client_proxy.rb b/config/initializers/http_client_proxy.rb index f5026d59e28..52c595c5d96 100644 --- a/config/initializers/http_client_proxy.rb +++ b/config/initializers/http_client_proxy.rb @@ -18,7 +18,8 @@ module Goldfinger def self.finger(uri, opts = {}) to_hidden = /\.(onion|i2p)(:\d+)?$/.match(uri) raise Mastodon::HostValidationError, 'Instance does not support hidden service connections' if !Rails.configuration.x.access_to_hidden_service && to_hidden - opts = opts.merge(Rails.configuration.x.http_client_proxy).merge(ssl: !to_hidden) + opts = { ssl: !to_hidden, headers: {} }.merge(Rails.configuration.x.http_client_proxy).merge(opts) + opts[:headers]['User-Agent'] ||= Mastodon::Version.user_agent Goldfinger::Client.new(uri, opts).finger end end diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 697f317d820..874dfedb700 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -48,5 +48,9 @@ module Mastodon source_base_url end end + + def user_agent + @user_agent ||= "#{HTTP::Request::USER_AGENT} (Mastodon/#{Version}; +http#{Rails.configuration.x.use_https ? 's' : ''}://#{Rails.configuration.x.web_domain}/)" + end end end