diff options
| author | feld <feld@feld.me> | 2021-06-07 17:03:19 +0000 | 
|---|---|---|
| committer | feld <feld@feld.me> | 2021-06-07 17:03:19 +0000 | 
| commit | 96e85ea687396eaf70fcbf0387c2605eaadc6612 (patch) | |
| tree | 0f1d9ab79c29060edd3f95c4795e634a10d1a5a3 /lib | |
| parent | 94687e23938b808a3fff95c92956ec337160cd0b (diff) | |
| parent | 3be08e7c2ec8b77e02e3d0572227221d68163df0 (diff) | |
| download | pleroma-96e85ea687396eaf70fcbf0387c2605eaadc6612.tar.gz pleroma-96e85ea687396eaf70fcbf0387c2605eaadc6612.zip | |
Merge branch 'cycles-reverse-proxy' into 'develop'
Recompilation speedup: create Dynamic client for ReverseProxy
See merge request pleroma/pleroma!3440
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/reverse_proxy.ex | 2 | ||||
| -rw-r--r-- | lib/pleroma/reverse_proxy/client.ex | 18 | ||||
| -rw-r--r-- | lib/pleroma/reverse_proxy/client/wrapper.ex | 29 | 
3 files changed, 30 insertions, 19 deletions
| diff --git a/lib/pleroma/reverse_proxy.ex b/lib/pleroma/reverse_proxy.ex index 406f7e2b8..ec69a1779 100644 --- a/lib/pleroma/reverse_proxy.ex +++ b/lib/pleroma/reverse_proxy.ex @@ -411,7 +411,7 @@ defmodule Pleroma.ReverseProxy do      {:ok, :no_duration_limit, :no_duration_limit}    end -  defp client, do: Pleroma.ReverseProxy.Client +  defp client, do: Pleroma.ReverseProxy.Client.Wrapper    defp track_failed_url(url, error, opts) do      ttl = diff --git a/lib/pleroma/reverse_proxy/client.ex b/lib/pleroma/reverse_proxy/client.ex index 8698fa2e1..75243d2dc 100644 --- a/lib/pleroma/reverse_proxy/client.ex +++ b/lib/pleroma/reverse_proxy/client.ex @@ -17,22 +17,4 @@ defmodule Pleroma.ReverseProxy.Client do    @callback stream_body(map()) :: {:ok, binary(), map()} | :done | {:error, atom() | String.t()}    @callback close(reference() | pid() | map()) :: :ok - -  def request(method, url, headers, body \\ "", opts \\ []) do -    client().request(method, url, headers, body, opts) -  end - -  def stream_body(ref), do: client().stream_body(ref) - -  def close(ref), do: client().close(ref) - -  defp client do -    :tesla -    |> Application.get_env(:adapter) -    |> client() -  end - -  defp client(Tesla.Adapter.Hackney), do: Pleroma.ReverseProxy.Client.Hackney -  defp client(Tesla.Adapter.Gun), do: Pleroma.ReverseProxy.Client.Tesla -  defp client(_), do: Pleroma.Config.get!(Pleroma.ReverseProxy.Client)  end diff --git a/lib/pleroma/reverse_proxy/client/wrapper.ex b/lib/pleroma/reverse_proxy/client/wrapper.ex new file mode 100644 index 000000000..06dd29fea --- /dev/null +++ b/lib/pleroma/reverse_proxy/client/wrapper.ex @@ -0,0 +1,29 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.ReverseProxy.Client.Wrapper do +  @moduledoc "Meta-client that calls the appropriate client from the config." +  @behaviour Pleroma.ReverseProxy.Client + +  @impl true +  def request(method, url, headers, body \\ "", opts \\ []) do +    client().request(method, url, headers, body, opts) +  end + +  @impl true +  def stream_body(ref), do: client().stream_body(ref) + +  @impl true +  def close(ref), do: client().close(ref) + +  defp client do +    :tesla +    |> Application.get_env(:adapter) +    |> client() +  end + +  defp client(Tesla.Adapter.Hackney), do: Pleroma.ReverseProxy.Client.Hackney +  defp client(Tesla.Adapter.Gun), do: Pleroma.ReverseProxy.Client.Tesla +  defp client(_), do: Pleroma.Config.get!(Pleroma.ReverseProxy.Client) +end | 
