From 290f5b2cfe91dd2acba56f79ef137f15c68a0db0 Mon Sep 17 00:00:00 2001
From: William Pitcock <nenolod@dereferenced.org>
Date: Fri, 17 May 2019 20:28:58 +0000
Subject: [PATCH] config: make sending the user agent configurable, disable
 sending the user agent in tests

---
 config/config.exs                   | 1 +
 config/test.exs                     | 2 ++
 lib/pleroma/http/request_builder.ex | 8 +++++++-
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/config/config.exs b/config/config.exs
index e82f08e07..9a10b0ff7 100644
--- a/config/config.exs
+++ b/config/config.exs
@@ -192,6 +192,7 @@ config :tesla, adapter: Tesla.Adapter.Hackney
 # Configures http settings, upstream proxy etc.
 config :pleroma, :http,
   proxy_url: nil,
+  send_user_agent: true,
   adapter: [
     ssl_options: [
       # We don't support TLS v1.3 yet
diff --git a/config/test.exs b/config/test.exs
index e1785d10f..6100989c4 100644
--- a/config/test.exs
+++ b/config/test.exs
@@ -63,6 +63,8 @@ config :pleroma, :app_account_creation, max_requests: 5
 
 config :pleroma, :http_security, report_uri: "https://endpoint.com"
 
+config :pleroma, :http, send_user_agent: false
+
 rum_enabled = System.get_env("RUM_ENABLED") == "true"
 config :pleroma, :database, rum_enabled: rum_enabled
 IO.puts("RUM enabled: #{rum_enabled}")
diff --git a/lib/pleroma/http/request_builder.ex b/lib/pleroma/http/request_builder.ex
index 522728da1..e23457999 100644
--- a/lib/pleroma/http/request_builder.ex
+++ b/lib/pleroma/http/request_builder.ex
@@ -46,7 +46,13 @@ defmodule Pleroma.HTTP.RequestBuilder do
   """
   @spec headers(map(), list(tuple)) :: map()
   def headers(request, header_list) do
-    header_list = header_list ++ [{"User-Agent", Pleroma.Application.user_agent()}]
+    header_list =
+      if Pleroma.Config.get([:http, :send_user_agent]) do
+        header_list ++ [{"User-Agent", Pleroma.Application.user_agent()}]
+      else
+        header_list
+      end
+
     Map.put_new(request, :headers, header_list)
   end