summaryrefslogtreecommitdiff
path: root/src/mod_muc/mod_muc_room.erl
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2003-06-30 12:24:35 +0000
committerAlexey Shchepin <alexey@process-one.net>2003-06-30 12:24:35 +0000
commit8bee1ad5a656994c28507e2f56d0bf454d6237a9 (patch)
treeacf7a8437bea823eefbe6d3bc485e3c16e870f6b /src/mod_muc/mod_muc_room.erl
parent* src/jlib.hrl: Error stanzas updated to confirm latest xmpp-core (diff)
* src/mod_muc/mod_muc_room.erl: Fixed room destroying
* src/mod_muc/mod_muc.erl: Likewise SVN Revision: 118
Diffstat (limited to '')
-rw-r--r--src/mod_muc/mod_muc_room.erl22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/mod_muc/mod_muc_room.erl b/src/mod_muc/mod_muc_room.erl
index 37f07afb..a1ec7955 100644
--- a/src/mod_muc/mod_muc_room.erl
+++ b/src/mod_muc/mod_muc_room.erl
@@ -295,7 +295,12 @@ normal_state({route, From, "",
""},
From,
jlib:iq_to_xml(IQRes)),
- {next_state, normal_state, NewStateData};
+ case NewStateData of
+ stop ->
+ {stop, normal, StateData};
+ _ ->
+ {next_state, normal_state, NewStateData}
+ end;
_ ->
Err = jlib:make_error_reply(
Packet, ?ERR_FEATURE_NOT_IMPLEMENTED),
@@ -419,7 +424,14 @@ normal_state({route, From, Nick,
end,
%io:format("STATE1: ~p~n", [?DICT:to_list(StateData#state.users)]),
%io:format("STATE2: ~p~n", [?DICT:to_list(StateData1#state.users)]),
- {next_state, normal_state, StateData1};
+
+ case (not (StateData1#state.config)#config.persistent) andalso
+ (?DICT:to_list(StateData1#state.users) == []) of
+ true ->
+ {stop, normal, StateData1};
+ _ ->
+ {next_state, normal_state, StateData1}
+ end;
normal_state({route, From, ToNick,
{xmlelement, "message", Attrs, Els} = Packet},
@@ -447,7 +459,7 @@ normal_state({route, From, ToNick,
case find_jid_by_nick(ToNick, StateData) of
false ->
Err = jlib:make_error_reply(
- Packet, ?ERR_JID_NOT_FOUND),
+ Packet, ?ERR_ITEM_NOT_FOUND),
ejabberd_router:route(
{StateData#state.room,
StateData#state.host,
@@ -484,7 +496,7 @@ normal_state({route, From, ToNick,
case find_jid_by_nick(ToNick, StateData) of
false ->
Err = jlib:make_error_reply(
- Packet, ?ERR_JID_NOT_FOUND),
+ Packet, ?ERR_ITEM_NOT_FOUND),
ejabberd_router:route(
{StateData#state.room, StateData#state.host, ToNick},
From, Err);
@@ -1787,7 +1799,7 @@ destroy_room(DEls, StateData) ->
Info#user.jid,
Packet)
end, ?DICT:to_list(StateData#state.users)),
- {result, [], StateData}.
+ {result, [], stop}.