Update Copyrights
[akkoma] / lib / pleroma / http / connection.ex
index db46f9e5540f6bd9e9e3c66d35ef0e292d95c18e..80e6c30d624b49abcb7bd19d89ba896d15a7c770 100644 (file)
@@ -1,13 +1,18 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
 defmodule Pleroma.HTTP.Connection do
   @moduledoc """
   Connection for http-requests.
   """
 
   @hackney_options [
-    pool: :default,
-    timeout: 10000,
-    recv_timeout: 20000,
-    follow_redirect: true
+    connect_timeout: 10_000,
+    recv_timeout: 20_000,
+    follow_redirect: true,
+    force_redirect: true,
+    pool: :federation
   ]
   @adapter Application.get_env(:tesla, :adapter)
 
@@ -25,8 +30,14 @@ defmodule Pleroma.HTTP.Connection do
 
   # fetch Hackney options
   #
-  defp hackney_options(opts \\ []) do
+  def hackney_options(opts) do
     options = Keyword.get(opts, :adapter, [])
-    @hackney_options ++ options
+    adapter_options = Pleroma.Config.get([:http, :adapter], [])
+    proxy_url = Pleroma.Config.get([:http, :proxy_url], nil)
+
+    @hackney_options
+    |> Keyword.merge(adapter_options)
+    |> Keyword.merge(options)
+    |> Keyword.merge(proxy: proxy_url)
   end
 end