24
1
mirror of https://github.com/processone/ejabberd.git synced 2024-06-14 22:00:16 +02:00

prevent creating badxml when pubsub_state is not accessible

SVN Revision: 2360
This commit is contained in:
Christophe Romain 2009-07-08 14:28:22 +00:00
parent 0287d50ff4
commit b31ca0cd36

View File

@ -723,8 +723,11 @@ set_subscriptions(NodeId, Owner, Subscriptions) ->
%% ```get_states(NodeId) ->
%% node_default:get_states(NodeId).'''</p>
get_states(NodeId) ->
States = mnesia:match_object(
#pubsub_state{stateid = {'_', NodeId}, _ = '_'}),
States = case catch mnesia:match_object(
#pubsub_state{stateid = {'_', NodeId}, _ = '_'}) of
List when is_list(List) -> List;
_ -> []
end,
{result, States}.
%% @spec (NodeId, JID) -> [State] | []
@ -734,7 +737,7 @@ get_states(NodeId) ->
%% @doc <p>Returns a state (one state list), given its reference.</p>
get_state(NodeId, JID) ->
StateId = {JID, NodeId},
case mnesia:read({pubsub_state, StateId}) of
case catch mnesia:read({pubsub_state, StateId}) of
[State] when is_record(State, pubsub_state) -> State;
_ -> #pubsub_state{stateid=StateId}
end.