diff options
Diffstat (limited to 'src/ejabberd_sm.erl')
-rw-r--r-- | src/ejabberd_sm.erl | 18 |
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( |