diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-02-14 12:39:26 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-02-14 12:39:26 +0300 |
commit | 28f66ddd7c3d39bbc694a32a396fc1c40296983e (patch) | |
tree | 901b1c79e4664b831ee9c0109516813a451c4820 /src/mod_http_upload.erl | |
parent | Merge pull request #1539 from lemenkov/use_crypto_sha (diff) |
Attach modules to gen_mod's supervisor
Diffstat (limited to 'src/mod_http_upload.erl')
-rw-r--r-- | src/mod_http_upload.erl | 32 |
1 files changed, 9 insertions, 23 deletions
diff --git a/src/mod_http_upload.erl b/src/mod_http_upload.erl index 55efc1ab..c32c189e 100644 --- a/src/mod_http_upload.erl +++ b/src/mod_http_upload.erl @@ -28,10 +28,11 @@ -protocol({xep, 363, '0.1'}). +-ifndef(GEN_SERVER). -define(GEN_SERVER, gen_server). +-endif. -define(SERVICE_REQUEST_TIMEOUT, 5000). % 5 seconds. -define(SLOT_TIMEOUT, 18000000). % 5 hours. --define(PROCNAME, ?MODULE). -define(FORMAT(Error), file:format_error(Error)). -define(URL_ENC(URL), binary_to_list(ejabberd_http:url_encode(URL))). -define(ADDR_TO_STR(IP), ejabberd_config:may_hide_data(jlib:ip_to_list(IP))). @@ -65,8 +66,7 @@ -behaviour(gen_mod). %% gen_mod/supervisor callbacks. --export([start_link/3, - start/2, +-export([start/2, stop/1, depends/2, mod_opt_type/1]). @@ -124,13 +124,6 @@ %%-------------------------------------------------------------------- %% gen_mod/supervisor callbacks. %%-------------------------------------------------------------------- - --spec start_link(binary(), atom(), gen_mod:opts()) - -> {ok, pid()} | ignore | {error, _}. - -start_link(ServerHost, Proc, Opts) -> - ?GEN_SERVER:start_link({local, Proc}, ?MODULE, {ServerHost, Opts}, []). - -spec start(binary(), gen_mod:opts()) -> {ok, _} | {ok, _, _} | {error, _}. start(ServerHost, Opts) -> @@ -143,14 +136,8 @@ start(ServerHost, Opts) -> false -> ok end, - Proc = get_proc_name(ServerHost, ?PROCNAME), - Spec = {Proc, - {?MODULE, start_link, [ServerHost, Proc, Opts]}, - permanent, - 3000, - worker, - [?MODULE]}, - supervisor:start_child(ejabberd_sup, Spec). + Proc = get_proc_name(ServerHost, ?MODULE), + gen_mod:start_child(?MODULE, ServerHost, Opts, Proc). -spec stop(binary()) -> ok. @@ -164,9 +151,8 @@ stop(ServerHost) -> false -> ok end, - Proc = get_proc_name(ServerHost, ?PROCNAME), - supervisor:terminate_child(ejabberd_sup, Proc), - supervisor:delete_child(ejabberd_sup, Proc). + Proc = get_proc_name(ServerHost, ?MODULE), + gen_mod:stop_child(Proc). -spec mod_opt_type(atom()) -> fun((term()) -> term()) | [atom()]. @@ -230,7 +216,7 @@ depends(_Host, _Opts) -> -spec init({binary(), gen_mod:opts()}) -> {ok, state()}. -init({ServerHost, Opts}) -> +init([ServerHost, Opts]) -> process_flag(trap_exit, true), Host = gen_mod:get_opt_host(ServerHost, Opts, <<"upload.@HOST@">>), Name = gen_mod:get_opt(name, Opts, @@ -750,7 +736,7 @@ parse_http_request(#request{host = Host, path = Path}) -> true -> {Host, Path} end, - {gen_mod:get_module_proc(ProcURL, ?PROCNAME), Slot}. + {gen_mod:get_module_proc(ProcURL, ?MODULE), Slot}. -spec store_file(binary(), binary(), integer() | undefined, |