summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Felder <feld@feld.me>2024-08-27 20:39:32 -0400
committerMark Felder <feld@feld.me>2024-08-27 20:39:32 -0400
commit5f6506d864239408e9fa3705c5dd7b241307241a (patch)
treede9883d04f2097959ce8de9f1f9e18bad5f08908
parent58f646bcda97d6a9f21aa41b55f77dd4e2a9c695 (diff)
downloadpleroma-5f6506d864239408e9fa3705c5dd7b241307241a.tar.gz
pleroma-5f6506d864239408e9fa3705c5dd7b241307241a.zip
Pleroma.HTTP: option stream: true will return a stream as the body for Gun adapter
-rw-r--r--lib/pleroma/http/adapter_helper/gun.ex9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/pleroma/http/adapter_helper/gun.ex b/lib/pleroma/http/adapter_helper/gun.ex
index 1fe8dd4b2..f9a8180f2 100644
--- a/lib/pleroma/http/adapter_helper/gun.ex
+++ b/lib/pleroma/http/adapter_helper/gun.ex
@@ -32,6 +32,7 @@ defmodule Pleroma.HTTP.AdapterHelper.Gun do
|> AdapterHelper.maybe_add_proxy(proxy)
|> Keyword.merge(incoming_opts)
|> put_timeout()
+ |> maybe_stream()
end
defp add_scheme_opts(opts, %{scheme: "http"}), do: opts
@@ -47,6 +48,14 @@ defmodule Pleroma.HTTP.AdapterHelper.Gun do
Keyword.put(opts, :timeout, recv_timeout)
end
+ # Tesla Gun adapter uses body_as: :stream
+ defp maybe_stream(opts) do
+ case Keyword.pop(opts, :stream, nil) do
+ {true, opts} -> Keyword.put(opts, :body_as, :stream)
+ {_, opts} -> opts
+ end
+ end
+
@spec pool_timeout(pool()) :: non_neg_integer()
def pool_timeout(pool) do
default = Config.get([:pools, :default, :recv_timeout], 5_000)