aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/pleroma/application/dynamic_supervisor.ex15
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/pleroma/application/dynamic_supervisor.ex b/lib/pleroma/application/dynamic_supervisor.ex
index 54af19e63..a488abffd 100644
--- a/lib/pleroma/application/dynamic_supervisor.ex
+++ b/lib/pleroma/application/dynamic_supervisor.ex
@@ -106,10 +106,10 @@ defmodule Pleroma.Application.DynamicSupervisor do
{{:pleroma, :pools}, Pleroma.Application.GunSupervisor},
{{:pleroma, :connections_pool}, Pleroma.Application.GunSupervisor},
{{:pleroma, :hackney_pools}, Pleroma.Application.HackneySupervisor},
+ {{:pleroma, :gopher}, Pleroma.Gopher.Server},
{{:pleroma, Pleroma.Captcha, [:seconds_valid]}, Pleroma.Web.Endpoint},
{{:pleroma, Pleroma.Upload, [:proxy_remote]}, adapter_module},
{{:pleroma, :instance, [:upload_limit]}, Pleroma.Web.Endpoint},
- {{:pleroma, :gopher, [:enabled]}, Pleroma.Gopher.Server},
{{:pleroma, :fed_sockets, [:enabled]}, Pleroma.Web.Endpoint}
]
end
@@ -152,8 +152,19 @@ defmodule Pleroma.Application.DynamicSupervisor do
end
defp restart_child(path) do
- pid = Pleroma.Application.Agent.pid(path)
+ path
+ |> Pleroma.Application.Agent.pid()
+ |> restart_child(path)
+ end
+
+ defp restart_child(nil, path) do
+ # child wasn't started yet
+ with {_, module} <- find_mapping(path) do
+ start_dynamic_child(module)
+ end
+ end
+ defp restart_child(pid, path) when is_pid(pid) do
# main module can have multiple keys
# first we search for main module
with {_, module} <- find_mapping(path),