]> granicus.if.org Git - ejabberd/commitdiff
mod_http_upload: Log error if 'put_url' is reused
authorHolger Weiss <holger@zedat.fu-berlin.de>
Mon, 17 Sep 2018 19:46:37 +0000 (21:46 +0200)
committerHolger Weiss <holger@zedat.fu-berlin.de>
Mon, 17 Sep 2018 19:46:37 +0000 (21:46 +0200)
Log a proper [error] message if a single 'put_url' is used for multiple
virtual hosts.

src/mod_http_upload.erl

index 7e9816cbec07d50eee9a36dd3b03685fb626e540..220ca1a640bbf71b3bdc7145868bacaad92b2e7f 100644 (file)
 %%--------------------------------------------------------------------
 %% gen_mod/supervisor callbacks.
 %%--------------------------------------------------------------------
--spec start(binary(), gen_mod:opts()) -> {ok, pid()}.
+-spec start(binary(), gen_mod:opts()) -> {ok, pid()} | {error, already_started}.
 start(ServerHost, Opts) ->
     case gen_mod:get_opt(rm_on_unregister, Opts) of
        true ->
@@ -132,7 +132,14 @@ start(ServerHost, Opts) ->
            ok
     end,
     Proc = get_proc_name(ServerHost, ?MODULE),
-    gen_mod:start_child(?MODULE, ServerHost, Opts, Proc).
+    case whereis(Proc) of
+       undefined ->
+           gen_mod:start_child(?MODULE, ServerHost, Opts, Proc);
+       _Pid ->
+           ?ERROR_MSG("Multiple virtual hosts can't use a single 'put_url' "
+                      "without the @HOST@ keyword", []),
+           {error, already_started}
+    end.
 
 -spec stop(binary()) -> ok | {error, any()}.
 stop(ServerHost) ->