24
1
mirror of https://github.com/processone/ejabberd.git synced 2024-06-12 21:52:07 +02:00

* src/mod_muc/mod_muc_room.erl: Fixed room destroying

* src/mod_muc/mod_muc.erl: Likewise

SVN Revision: 118
This commit is contained in:
Alexey Shchepin 2003-06-30 12:24:35 +00:00
parent 081c698731
commit 8bee1ad5a6
3 changed files with 25 additions and 7 deletions

View File

@ -1,3 +1,8 @@
2003-06-30 Alexey Shchepin <alexey@sevcom.net>
* src/mod_muc/mod_muc_room.erl: Fixed room destroying
* src/mod_muc/mod_muc.erl: Likewise
2003-06-29 Alexey Shchepin <alexey@sevcom.net> 2003-06-29 Alexey Shchepin <alexey@sevcom.net>
* src/jlib.hrl: Error stanzas updated to confirm latest xmpp-core * src/jlib.hrl: Error stanzas updated to confirm latest xmpp-core

View File

@ -63,7 +63,8 @@ loop(Host) ->
end, end,
loop(Host); loop(Host);
{room_destroyed, Room} -> {room_destroyed, Room} ->
ets:delete(muc_online_room, Room); ets:delete(muc_online_room, Room),
loop(Host);
stop -> stop ->
% TODO % TODO
ejabberd_router:unregister_global_route(Host), ejabberd_router:unregister_global_route(Host),
@ -169,7 +170,7 @@ do_route(Host, From, To, Packet) ->
ok; ok;
_ -> _ ->
Err = jlib:make_error_reply( Err = jlib:make_error_reply(
Packet, ?ERR_JID_NOT_FOUND), Packet, ?ERR_ITEM_NOT_FOUND),
ejabberd_router:route(To, From, Err) ejabberd_router:route(To, From, Err)
end end
end; end;

View File

@ -295,7 +295,12 @@ normal_state({route, From, "",
""}, ""},
From, From,
jlib:iq_to_xml(IQRes)), 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( Err = jlib:make_error_reply(
Packet, ?ERR_FEATURE_NOT_IMPLEMENTED), Packet, ?ERR_FEATURE_NOT_IMPLEMENTED),
@ -419,7 +424,14 @@ normal_state({route, From, Nick,
end, end,
%io:format("STATE1: ~p~n", [?DICT:to_list(StateData#state.users)]), %io:format("STATE1: ~p~n", [?DICT:to_list(StateData#state.users)]),
%io:format("STATE2: ~p~n", [?DICT:to_list(StateData1#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, normal_state({route, From, ToNick,
{xmlelement, "message", Attrs, Els} = Packet}, {xmlelement, "message", Attrs, Els} = Packet},
@ -447,7 +459,7 @@ normal_state({route, From, ToNick,
case find_jid_by_nick(ToNick, StateData) of case find_jid_by_nick(ToNick, StateData) of
false -> false ->
Err = jlib:make_error_reply( Err = jlib:make_error_reply(
Packet, ?ERR_JID_NOT_FOUND), Packet, ?ERR_ITEM_NOT_FOUND),
ejabberd_router:route( ejabberd_router:route(
{StateData#state.room, {StateData#state.room,
StateData#state.host, StateData#state.host,
@ -484,7 +496,7 @@ normal_state({route, From, ToNick,
case find_jid_by_nick(ToNick, StateData) of case find_jid_by_nick(ToNick, StateData) of
false -> false ->
Err = jlib:make_error_reply( Err = jlib:make_error_reply(
Packet, ?ERR_JID_NOT_FOUND), Packet, ?ERR_ITEM_NOT_FOUND),
ejabberd_router:route( ejabberd_router:route(
{StateData#state.room, StateData#state.host, ToNick}, {StateData#state.room, StateData#state.host, ToNick},
From, Err); From, Err);
@ -1787,7 +1799,7 @@ destroy_room(DEls, StateData) ->
Info#user.jid, Info#user.jid,
Packet) Packet)
end, ?DICT:to_list(StateData#state.users)), end, ?DICT:to_list(StateData#state.users)),
{result, [], StateData}. {result, [], stop}.