summaryrefslogtreecommitdiff
path: root/src/mod_pubsub/mod_pubsub.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mod_pubsub/mod_pubsub.erl')
-rw-r--r--src/mod_pubsub/mod_pubsub.erl15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/mod_pubsub/mod_pubsub.erl b/src/mod_pubsub/mod_pubsub.erl
index 6b21f458..2ea34302 100644
--- a/src/mod_pubsub/mod_pubsub.erl
+++ b/src/mod_pubsub/mod_pubsub.erl
@@ -218,7 +218,7 @@ init([ServerHost, Opts]) ->
ejabberd_router:register_route(Host),
update_node_database(Host, ServerHost),
update_state_database(Host, ServerHost),
- init_nodes(Host, ServerHost),
+ init_nodes(Host, ServerHost, NodeTree, Plugins),
State = #state{host = Host,
server_host = ServerHost,
access = Access,
@@ -268,10 +268,15 @@ terminate_plugins(Host, ServerHost, Plugins, TreePlugin) ->
TreePlugin:terminate(Host, ServerHost),
ok.
-init_nodes(Host, ServerHost) ->
- create_node(Host, ServerHost, ["home"], service_jid(Host), "hometree"),
- create_node(Host, ServerHost, ["home", ServerHost], service_jid(Host), "hometree"),
- ok.
+init_nodes(Host, ServerHost, _NodeTree, Plugins) ->
+ %% TODO, this call should be done PLugin side
+ case lists:member("hometree", Plugins) of
+ true ->
+ create_node(Host, ServerHost, ["home"], service_jid(Host), "hometree"),
+ create_node(Host, ServerHost, ["home", ServerHost], service_jid(Host), "hometree");
+ false ->
+ ok
+ end.
update_node_database(Host, ServerHost) ->
mnesia:del_table_index(pubsub_node, type),