diff options
author | Evgeny Khramtsov <ekhramtsov@process-one.net> | 2019-08-04 21:46:18 +0300 |
---|---|---|
committer | Evgeny Khramtsov <ekhramtsov@process-one.net> | 2019-08-04 21:46:18 +0300 |
commit | 2168489ddf96a88d4b4885a1a0a986acb25754c5 (patch) | |
tree | 6eb6aa952467a4b30977d603cd05c6644c259893 /src/mod_proxy65.erl | |
parent | Use tagged version for yconf as well (diff) |
Don't retain module option on gen_mod supervisor
When module's options were updated (e.g. by reloading ejabberd.yml)
and, later, the module's process crashed, gen_mod supervisor
restarts the process with outdated options. This is now fixed.
Diffstat (limited to 'src/mod_proxy65.erl')
-rw-r--r-- | src/mod_proxy65.erl | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/mod_proxy65.erl b/src/mod_proxy65.erl index 61e09439..718f49cb 100644 --- a/src/mod_proxy65.erl +++ b/src/mod_proxy65.erl @@ -39,7 +39,7 @@ %% supervisor callbacks. -export([init/1]). --export([start_link/2, mod_opt_type/1, mod_options/1, depends/2]). +-export([start_link/1, mod_opt_type/1, mod_options/1, depends/2]). -define(PROCNAME, ejabberd_mod_proxy65). @@ -59,7 +59,7 @@ start(Host, Opts) -> Mod = gen_mod:ram_db_mod(global, ?MODULE), Mod:init(), Proc = gen_mod:get_module_proc(Host, ?PROCNAME), - ChildSpec = {Proc, {?MODULE, start_link, [Host, Opts]}, + ChildSpec = {Proc, {?MODULE, start_link, [Host]}, transient, infinity, supervisor, [?MODULE]}, supervisor:start_child(ejabberd_gen_mod_sup, ChildSpec) end. @@ -80,14 +80,13 @@ reload(Host, NewOpts, OldOpts) -> Mod:init(), mod_proxy65_service:reload(Host, NewOpts, OldOpts). -start_link(Host, Opts) -> +start_link(Host) -> Proc = gen_mod:get_module_proc(Host, ?PROCNAME), - supervisor:start_link({local, Proc}, ?MODULE, - [Host, Opts]). + supervisor:start_link({local, Proc}, ?MODULE, [Host]). -init([Host, Opts]) -> +init([Host]) -> Service = {mod_proxy65_service, - {mod_proxy65_service, start_link, [Host, Opts]}, + {mod_proxy65_service, start_link, [Host]}, transient, 5000, worker, [mod_proxy65_service]}, {ok, {{one_for_one, 10, 1}, [Service]}}. |