aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_sm.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_sm.erl')
-rw-r--r--src/ejabberd_sm.erl18
1 files changed, 12 insertions, 6 deletions
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(