From 2d5d2738375e76db1d88b303527fd99b6c934f6e Mon Sep 17 00:00:00 2001 From: Alexander Strizhakov Date: Thu, 16 Jul 2020 20:26:28 +0300 Subject: updates for gun --- lib/pleroma/application/dynamic_supervisor.ex | 12 ++++----- lib/pleroma/application/gun_supervisor.ex | 15 +++++++++++ lib/pleroma/application/hackney_pool_supervisor.ex | 30 ---------------------- lib/pleroma/application/hackney_supervisor.ex | 30 ++++++++++++++++++++++ 4 files changed, 50 insertions(+), 37 deletions(-) create mode 100644 lib/pleroma/application/gun_supervisor.ex delete mode 100644 lib/pleroma/application/hackney_pool_supervisor.ex create mode 100644 lib/pleroma/application/hackney_supervisor.ex diff --git a/lib/pleroma/application/dynamic_supervisor.ex b/lib/pleroma/application/dynamic_supervisor.ex index bc56ad0fd..68b29e3f5 100644 --- a/lib/pleroma/application/dynamic_supervisor.ex +++ b/lib/pleroma/application/dynamic_supervisor.ex @@ -52,9 +52,7 @@ defmodule Pleroma.Application.DynamicSupervisor do end defp add_http_children(children, :test) do - hackney_options = Pleroma.Config.get([:hackney_pools, :federation]) - hackney_pool = :hackney_pool.child_spec(:federation, hackney_options) - [hackney_pool, Pleroma.Pool.Supervisor | children] + [Pleroma.Application.HackneySupervisor, Pleroma.Application.GunSupervisor | children] end defp add_http_children(children, _) do @@ -62,7 +60,7 @@ defmodule Pleroma.Application.DynamicSupervisor do child = if adapter == Tesla.Adapter.Gun do - Pleroma.Pool.Supervisor + Pleroma.Application.GunSupervisor else Pleroma.Application.HackneyPoolSupervisor end @@ -99,7 +97,7 @@ defmodule Pleroma.Application.DynamicSupervisor do defp config_path_mappings do adapter_module = if Application.get_env(:tesla, :adapter) == Tesla.Adapter.Gun do - Pleroma.Pool.Supervisor + Pleroma.Application.GunSupervisor else Pleroma.Application.HackneyPoolSupervisor end @@ -109,8 +107,8 @@ defmodule Pleroma.Application.DynamicSupervisor do {{:pleroma, Oban}, Oban}, {{:pleroma, :rate_limit}, Pleroma.Plugs.RateLimiter.Supervisor}, {{:pleroma, :streamer}, Pleroma.Web.Streamer.registry()}, - {{:pleroma, :pools}, Pleroma.Pool.Supervisor}, - {{:pleroma, :connections_pool}, Pleroma.Pool.Supervisor}, + {{:pleroma, :pools}, Pleroma.Application.GunSupervisor}, + {{:pleroma, :connections_pool}, Pleroma.Application.GunSupervisor}, {{:pleroma, :hackney_pools}, Pleroma.Application.HackneyPoolSupervisor}, {{:pleroma, Pleroma.Captcha, [:seconds_valid]}, Pleroma.Web.Endpoint}, {{:pleroma, Pleroma.Upload, [:proxy_remote]}, adapter_module}, diff --git a/lib/pleroma/application/gun_supervisor.ex b/lib/pleroma/application/gun_supervisor.ex new file mode 100644 index 000000000..d749a56f5 --- /dev/null +++ b/lib/pleroma/application/gun_supervisor.ex @@ -0,0 +1,15 @@ +defmodule Pleroma.Application.GunSupervisor do + use Supervisor + + def start_link(_) do + Supervisor.start_link(__MODULE__, :no_args) + end + + def init(_) do + children = + Pleroma.Gun.ConnectionPool.children() ++ + [{Task, &Pleroma.HTTP.AdapterHelper.Gun.limiter_setup/0}] + + Supervisor.init(children, strategy: :one_for_one) + end +end diff --git a/lib/pleroma/application/hackney_pool_supervisor.ex b/lib/pleroma/application/hackney_pool_supervisor.ex deleted file mode 100644 index 3e6c31a9c..000000000 --- a/lib/pleroma/application/hackney_pool_supervisor.ex +++ /dev/null @@ -1,30 +0,0 @@ -# # Pleroma: A lightweight social networking server -# # Copyright © 2017-2020 Pleroma Authors -# # SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Application.HackneyPoolSupervisor do - use Supervisor - - def start_link(_) do - Supervisor.start_link(__MODULE__, :no_arg) - end - - def init(_) do - pools = [:federation, :media] - - pools = - if Pleroma.Config.get([Pleroma.Upload, :proxy_remote]) do - [:upload | pools] - else - pools - end - - children = - for pool <- pools do - options = Pleroma.Config.get([:hackney_pools, pool]) - :hackney_pool.child_spec(pool, options) - end - - Supervisor.init(children, strategy: :one_for_one) - end -end diff --git a/lib/pleroma/application/hackney_supervisor.ex b/lib/pleroma/application/hackney_supervisor.ex new file mode 100644 index 000000000..27dd04409 --- /dev/null +++ b/lib/pleroma/application/hackney_supervisor.ex @@ -0,0 +1,30 @@ +# # Pleroma: A lightweight social networking server +# # Copyright © 2017-2020 Pleroma Authors +# # SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Application.HackneySupervisor do + use Supervisor + + def start_link(_) do + Supervisor.start_link(__MODULE__, :no_arg) + end + + def init(_) do + pools = [:federation, :media] + + pools = + if Pleroma.Config.get([Pleroma.Upload, :proxy_remote]) do + [:upload | pools] + else + pools + end + + children = + for pool <- pools do + options = Pleroma.Config.get([:hackney_pools, pool]) + :hackney_pool.child_spec(pool, options) + end + + Supervisor.init(children, strategy: :one_for_one) + end +end -- cgit v1.2.3