aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--ChangeLog6
-rw-r--r--src/ejabberd_sm.erl18
-rw-r--r--src/mod_muc/mod_muc_room.erl11
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 <alexey@sevcom.net>
+
+ * src/mod_muc/mod_muc_room.erl: Bugfix
+
+ * src/ejabberd_sm.erl (route_message): Bugfix
+
2003-11-09 Alexey Shchepin <alexey@sevcom.net>
* 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;