]> granicus.if.org Git - ejabberd/commitdiff
Unregister commands when stopping node only if it's last one (#2083)
authorBadlop <badlop@process-one.net>
Mon, 6 Nov 2017 15:53:49 +0000 (16:53 +0100)
committerBadlop <badlop@process-one.net>
Mon, 6 Nov 2017 15:53:49 +0000 (16:53 +0100)
src/mod_admin_extra.erl
src/mod_mam.erl
src/mod_muc_admin.erl
src/mod_push.erl

index c58822526ab00ddfdd5ed7dec716a956eb780efa..799f0079f0697d9ad356538d3c36c784c46bda0b 100644 (file)
 start(_Host, _Opts) ->
     ejabberd_commands:register_commands(get_commands_spec()).
 
-stop(_Host) ->
-    ejabberd_commands:unregister_commands(get_commands_spec()).
+stop(Host) ->
+    case gen_mod:is_loaded_elsewhere(Host, ?MODULE) of
+       false ->
+           ejabberd_commands:unregister_commands(get_commands_spec());
+       true ->
+           ok
+    end.
 
 reload(_Host, _NewOpts, _OldOpts) ->
     ok.
index a009a91646283ffe3a9ded5c32b6d15799eca3c3..2593aaefd4d284fd8e5a4ce4cf27dd5a16af0de3 100644 (file)
@@ -169,8 +169,12 @@ stop(Host) ->
        false ->
            ok
     end,
-    ejabberd_commands:unregister_commands(get_commands_spec()),
-    ok.
+    case gen_mod:is_loaded_elsewhere(Host, ?MODULE) of
+        false ->
+            ejabberd_commands:unregister_commands(get_commands_spec());
+        true ->
+            ok
+    end.
 
 reload(Host, NewOpts, OldOpts) ->
     NewMod = gen_mod:db_mod(Host, NewOpts, ?MODULE),
index a8dbc24791c6fb66a74a5f44d81525991c9ef31d..ac11283ade537abbc86179c40267fc516d73418c 100644 (file)
@@ -62,7 +62,12 @@ start(Host, _Opts) ->
     ejabberd_hooks:add(webadmin_page_host, Host, ?MODULE, web_page_host, 50).
 
 stop(Host) ->
-    ejabberd_commands:unregister_commands(get_commands_spec()),
+    case gen_mod:is_loaded_elsewhere(Host, ?MODULE) of
+        false ->
+            ejabberd_commands:unregister_commands(get_commands_spec());
+        true ->
+            ok
+    end,
     ejabberd_hooks:delete(webadmin_menu_main, ?MODULE, web_menu_main, 50),
     ejabberd_hooks:delete(webadmin_menu_host, Host, ?MODULE, web_menu_host, 50),
     ejabberd_hooks:delete(webadmin_page_main, ?MODULE, web_page_main, 50),
index 5bc9ce9f0c5f0dacbca8f455fd8afbdf5c8cdc06..c947ecace719c807bec714856590b5771195f190 100644 (file)
@@ -101,7 +101,12 @@ start(Host, Opts) ->
 stop(Host) ->
     unregister_hooks(Host),
     unregister_iq_handlers(Host),
-    ejabberd_commands:unregister_commands(get_commands_spec()).
+    case gen_mod:is_loaded_elsewhere(Host, ?MODULE) of
+        false ->
+            ejabberd_commands:unregister_commands(get_commands_spec());
+        true ->
+            ok
+    end.
 
 -spec reload(binary(), gen_mod:opts(), gen_mod:opts()) -> ok.
 reload(Host, NewOpts, OldOpts) ->