diff options
Diffstat (limited to 'src/mod_pubsub/mod_pubsub.erl')
-rw-r--r-- | src/mod_pubsub/mod_pubsub.erl | 15 |
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), |