25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-11-22 16:20:52 +01:00

minor bugfix, thanks to brian Cully (EJAB-1089)

SVN Revision: 2714
This commit is contained in:
Christophe Romain 2009-10-27 14:30:00 +00:00
parent b2bd51d3e3
commit 1fea1e3f4e

View File

@ -154,17 +154,21 @@ get_parentnodes_tree(Host, NodeID, _From) ->
get_subnodes(Host, NodeID, _From) -> get_subnodes(Host, NodeID, _From) ->
get_subnodes(Host, NodeID). get_subnodes(Host, NodeID).
get_subnodes(Host, <<>>) ->
get_subnodes_helper(Host, <<>>);
get_subnodes(Host, NodeID) -> get_subnodes(Host, NodeID) ->
case find_node(Host, NodeID) of case find_node(Host, NodeID) of
false -> {error, exmpp_stanza:error(?NS_JABBER_CLIENT, 'item-not-found')}; false -> {error, exmpp_stanza:error(?NS_JABBER_CLIENT, 'item-not-found')};
_ -> _ -> get_subnodes_helper(Host, NodeID)
Q = qlc:q([Node || #pubsub_node{nodeid = {NHost, _},
parents = Parents} = Node <- mnesia:table(pubsub_node),
Host == NHost,
lists:member(NodeID, Parents)]),
qlc:e(Q)
end. end.
get_subnodes_helper(Host, NodeID) ->
Q = qlc:q([Node || #pubsub_node{nodeid = {NHost, _},
parents = Parents} = Node <- mnesia:table(pubsub_node),
Host == NHost,
lists:member(NodeID, Parents)]),
qlc:e(Q).
get_subnodes_tree(Host, NodeID, From) -> get_subnodes_tree(Host, NodeID, From) ->
Pred = fun (NID, #pubsub_node{parents = Parents}) -> Pred = fun (NID, #pubsub_node{parents = Parents}) ->
lists:member(NID, Parents) lists:member(NID, Parents)
@ -224,6 +228,8 @@ validate_parentage(_Key, _Owners, []) ->
true; true;
validate_parentage(Key, Owners, [[] | T]) -> validate_parentage(Key, Owners, [[] | T]) ->
validate_parentage(Key, Owners, T); validate_parentage(Key, Owners, T);
validate_parentage(Key, Owners, [<<>> | T]) ->
validate_parentage(Key, Owners, T);
validate_parentage(Key, Owners, [ParentID | T]) -> validate_parentage(Key, Owners, [ParentID | T]) ->
case find_node(Key, ParentID) of case find_node(Key, ParentID) of
false -> {error, exmpp_stanza:error(?NS_JABBER_CLIENT, 'item_not_found')}; false -> {error, exmpp_stanza:error(?NS_JABBER_CLIENT, 'item_not_found')};