From 592d738114bc5eedfacbf143d6f35385742bf52d Mon Sep 17 00:00:00 2001 From: Alexey Shchepin Date: Mon, 10 Nov 2003 14:32:19 +0000 Subject: [PATCH] * src/mod_muc/mod_muc_room.erl: Bugfix * src/ejabberd_sm.erl (route_message): Bugfix SVN Revision: 172 --- ChangeLog | 6 ++++++ src/ejabberd_sm.erl | 18 ++++++++++++------ src/mod_muc/mod_muc_room.erl | 11 ++++++++--- 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6bea4e051..5713ce7b4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2003-11-10 Alexey Shchepin + + * src/mod_muc/mod_muc_room.erl: Bugfix + + * src/ejabberd_sm.erl (route_message): Bugfix + 2003-11-09 Alexey Shchepin * src/ejabberd_sm.erl: Bugfix for previous resource handling diff --git a/src/ejabberd_sm.erl b/src/ejabberd_sm.erl index 333cda2db..e58562e85 100644 --- a/src/ejabberd_sm.erl +++ b/src/ejabberd_sm.erl @@ -300,13 +300,19 @@ route_message(From, To, Packet) -> {'EXIT', _} -> case ejabberd_auth:is_user_exists(LUser) of true -> - case catch mod_offline:store_packet(From, To, Packet) of - {'EXIT', _} -> - Err = jlib:make_error_reply( - Packet, ?ERR_SERVICE_UNAVAILABLE), - ejabberd_router:route(To, From, Err); + case xml:get_tag_attr_s("type", Packet) of + "error" -> + ok; _ -> - ok + case catch mod_offline:store_packet( + From, To, Packet) of + {'EXIT', _} -> + Err = jlib:make_error_reply( + Packet, ?ERR_SERVICE_UNAVAILABLE), + ejabberd_router:route(To, From, Err); + _ -> + ok + end end; _ -> Err = jlib:make_error_reply( diff --git a/src/mod_muc/mod_muc_room.erl b/src/mod_muc/mod_muc_room.erl index e381a544d..71c1a4417 100644 --- a/src/mod_muc/mod_muc_room.erl +++ b/src/mod_muc/mod_muc_room.erl @@ -256,9 +256,14 @@ normal_state({route, From, "", {next_state, normal_state, StateData} end; _ -> - Err = jlib:make_error_reply( - Packet, ?ERR_NOT_ALLOWED), - ejabberd_router:route(StateData#state.jid, From, Err), + case xml:get_attr_s("type", Attrs) of + "error" -> + ok; + _ -> + Err = jlib:make_error_reply( + Packet, ?ERR_NOT_ALLOWED), + ejabberd_router:route(StateData#state.jid, From, Err) + end, {next_state, normal_state, StateData} end;