X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Freverse_proxy%2Fclient%2Ftesla.ex;h=59fd5493cc7c1cb48f7b79ca3577cbbbd6a48b4f;hb=e6da301296e45af5e5024fb74484cabe011e44e4;hp=84addc404e485db7193d191ff07f0869b099e44f;hpb=d4fbec62a37f229108a4ae5ef069042a8aa4aa22;p=akkoma
diff --git a/lib/pleroma/reverse_proxy/client/tesla.ex b/lib/pleroma/reverse_proxy/client/tesla.ex
index 84addc404..59fd5493c 100644
--- a/lib/pleroma/reverse_proxy/client/tesla.ex
+++ b/lib/pleroma/reverse_proxy/client/tesla.ex
@@ -1,12 +1,10 @@
# Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors
+# Copyright © 2017-2021 Pleroma Authors
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.ReverseProxy.Client.Tesla do
@behaviour Pleroma.ReverseProxy.Client
- alias Pleroma.Gun.ConnectionPool
-
@type headers() :: [{String.t(), String.t()}]
@type status() :: pos_integer()
@@ -28,13 +26,11 @@ defmodule Pleroma.ReverseProxy.Client.Tesla do
url,
body,
headers,
- Keyword.put(opts, :adapter, opts)
+ opts
) do
if is_map(response.body) and method != :head do
{:ok, response.status, response.headers, response.body}
else
- conn_pid = response.opts[:adapter][:conn]
- ConnectionPool.release_conn(conn_pid)
{:ok, response.status, response.headers}
end
else
@@ -45,15 +41,7 @@ defmodule Pleroma.ReverseProxy.Client.Tesla do
@impl true
@spec stream_body(map()) ::
{:ok, binary(), map()} | {:error, atom() | String.t()} | :done | no_return()
- def stream_body(%{pid: pid, opts: opts, fin: true}) do
- # if connection was reused, but in tesla were redirects,
- # tesla returns new opened connection, which must be closed manually
- if opts[:old_conn], do: Tesla.Adapter.Gun.close(pid)
- # if there were redirects we need to checkout old conn
- conn = opts[:old_conn] || opts[:conn]
-
- if conn, do: :ok = ConnectionPool.release_conn(conn)
-
+ def stream_body(%{pid: _pid, fin: true}) do
:done
end
@@ -77,17 +65,12 @@ defmodule Pleroma.ReverseProxy.Client.Tesla do
@impl true
@spec close(map) :: :ok | no_return()
- def close(%{pid: pid}) do
- ConnectionPool.release_conn(pid)
+ def close(%{pid: _pid}) do
end
defp check_adapter do
adapter = Application.get_env(:tesla, :adapter)
- unless adapter == Tesla.Adapter.Gun do
- raise "#{adapter} doesn't support reading body in chunks"
- end
-
adapter
end
end