projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Implement API actions on packs
[akkoma]
/
lib
/
pleroma
/
http
/
connection.ex
diff --git
a/lib/pleroma/http/connection.ex
b/lib/pleroma/http/connection.ex
index 12667b6634a8699bb5ca5e18752b25a4dc8c1843..7e2c6f5e8207e7b9b413d408b8e4f892f0fc83cb 100644
(file)
--- a/
lib/pleroma/http/connection.ex
+++ b/
lib/pleroma/http/connection.ex
@@
-1,5
+1,20
@@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
defmodule Pleroma.HTTP.Connection do
defmodule Pleroma.HTTP.Connection do
- @hackney_options [pool: :default]
+ @moduledoc """
+ Connection for http-requests.
+ """
+
+ @hackney_options [
+ connect_timeout: 10_000,
+ recv_timeout: 20_000,
+ follow_redirect: true,
+ force_redirect: true,
+ pool: :federation
+ ]
+ @adapter Application.get_env(:tesla, :adapter)
@doc """
Configure a client connection
@doc """
Configure a client connection
@@
-10,13
+25,19
@@
defmodule Pleroma.HTTP.Connection do
"""
@spec new(Keyword.t()) :: Tesla.Env.client()
def new(opts \\ []) do
"""
@spec new(Keyword.t()) :: Tesla.Env.client()
def new(opts \\ []) do
- Tesla.client([], {
Tesla.Adapter.Hackney
, hackney_options(opts)})
+ Tesla.client([], {
@adapter
, hackney_options(opts)})
end
# fetch Hackney options
#
end
# fetch Hackney options
#
- def
p hackney_options(opts \\ []
) do
+ def
hackney_options(opts
) do
options = Keyword.get(opts, :adapter, [])
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
end
end