diff options
author | Alexey Shchepin <alexey@process-one.net> | 2003-06-30 12:24:35 +0000 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2003-06-30 12:24:35 +0000 |
commit | 8bee1ad5a656994c28507e2f56d0bf454d6237a9 (patch) | |
tree | acf7a8437bea823eefbe6d3bc485e3c16e870f6b /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.erl | 22 |
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}. |