diff options
Diffstat (limited to 'src/mod_pubsub/mod_pubsub.erl')
-rw-r--r-- | src/mod_pubsub/mod_pubsub.erl | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/mod_pubsub/mod_pubsub.erl b/src/mod_pubsub/mod_pubsub.erl index ce0fb81f0..c10e31224 100644 --- a/src/mod_pubsub/mod_pubsub.erl +++ b/src/mod_pubsub/mod_pubsub.erl @@ -17,7 +17,7 @@ loop/2, stop/0, system_continue/3, - system_terminate/4, + system_terminate/4, system_code_change/4]). -include("ejabberd.hrl"). @@ -454,8 +454,14 @@ create_new_node(Host, Node, Owner) -> case Node of [] -> {LOU, LOS, _} = jlib:jid_tolower(Owner), - NewNode = ["home", LOS, LOU, randoms:get_string()], - create_new_node(Host, NewNode, Owner); + HomeNode = ["home", LOS, LOU], + case create_new_node(Host, HomeNode, Owner) of + {error, _} = Error -> + Error; + _ -> + NewNode = ["home", LOS, LOU, randoms:get_string()], + create_new_node(Host, NewNode, Owner) + end; _ -> LOwner = jlib:jid_tolower(jlib:jid_remove_resource(Owner)), Parent = lists:sublist(Node, length(Node) - 1), |