summaryrefslogtreecommitdiff
path: root/src/mod_http_upload.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-02-14 12:39:26 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-02-14 12:39:26 +0300
commit28f66ddd7c3d39bbc694a32a396fc1c40296983e (patch)
tree901b1c79e4664b831ee9c0109516813a451c4820 /src/mod_http_upload.erl
parentMerge 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.erl32
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,