diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2016-03-31 11:00:29 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2016-03-31 11:00:29 +0300 |
commit | fced8dc3d926ef733775725225a437c2c1656a4f (patch) | |
tree | 7d66931a79e0767bf25ff78820619961d5bddca9 /src/ejabberd_sm.erl | |
parent | Provide authzid in scream response (diff) |
Replace some ?ERR_* macros with ?ERRT_*
Diffstat (limited to 'src/ejabberd_sm.erl')
-rw-r--r-- | src/ejabberd_sm.erl | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/src/ejabberd_sm.erl b/src/ejabberd_sm.erl index 218e657f..4f7cfeea 100644 --- a/src/ejabberd_sm.erl +++ b/src/ejabberd_sm.erl @@ -159,8 +159,10 @@ check_in_subscription(Acc, User, Server, _JID, _Type, _Reason) -> -spec bounce_offline_message(jid(), jid(), xmlel()) -> stop. bounce_offline_message(From, To, Packet) -> - Err = jlib:make_error_reply(Packet, - ?ERR_SERVICE_UNAVAILABLE), + Lang = fxml:get_tag_attr_s(<<"xml:lang">>, Packet), + Txt = <<"User session not found">>, + Err = jlib:make_error_reply( + Packet, ?ERRT_SERVICE_UNAVAILABLE(Lang, Txt)), ejabberd_router:route(To, From, Err), stop. @@ -423,6 +425,7 @@ do_route(From, To, #xmlel{} = Packet) -> #jid{user = User, server = Server, luser = LUser, lserver = LServer, lresource = LResource} = To, #xmlel{name = Name, attrs = Attrs} = Packet, + Lang = fxml:get_attr_s(<<"xml:lang">>, Attrs), case LResource of <<"">> -> case Name of @@ -496,8 +499,9 @@ do_route(From, To, #xmlel{} = Packet) -> <<"headline">> -> route_message(From, To, Packet, headline); <<"error">> -> ok; <<"groupchat">> -> - Err = jlib:make_error_reply(Packet, - ?ERR_SERVICE_UNAVAILABLE), + ErrTxt = <<"Incorrect message type">>, + Err = jlib:make_error_reply( + Packet, ?ERRT_SERVICE_UNAVAILABLE(Lang, ErrTxt)), ejabberd_router:route(To, From, Err); _ -> route_message(From, To, Packet, normal) @@ -517,8 +521,10 @@ do_route(From, To, #xmlel{} = Packet) -> <<"">> -> route_message(From, To, Packet, normal); <<"error">> -> ok; _ -> - Err = jlib:make_error_reply(Packet, - ?ERR_SERVICE_UNAVAILABLE), + ErrTxt = <<"Incorrect message type">>, + Err = jlib:make_error_reply( + Packet, + ?ERRT_SERVICE_UNAVAILABLE(Lang, ErrTxt)), ejabberd_router:route(To, From, Err) end; <<"iq">> -> @@ -526,8 +532,10 @@ do_route(From, To, #xmlel{} = Packet) -> <<"error">> -> ok; <<"result">> -> ok; _ -> - Err = jlib:make_error_reply(Packet, - ?ERR_SERVICE_UNAVAILABLE), + ErrTxt = <<"User session not found">>, + Err = jlib:make_error_reply( + Packet, + ?ERRT_SERVICE_UNAVAILABLE(Lang, ErrTxt)), ejabberd_router:route(To, From, Err) end; _ -> ?DEBUG("packet dropped~n", []) @@ -684,7 +692,7 @@ get_max_user_sessions(LUser, Host) -> process_iq(From, To, Packet) -> IQ = jlib:iq_query_info(Packet), case IQ of - #iq{xmlns = XMLNS} -> + #iq{xmlns = XMLNS, lang = Lang} -> Host = To#jid.lserver, case ets:lookup(sm_iqtable, {XMLNS, Host}) of [{_, Module, Function}] -> @@ -697,8 +705,10 @@ process_iq(From, To, Packet) -> gen_iq_handler:handle(Host, Module, Function, Opts, From, To, IQ); [] -> - Err = jlib:make_error_reply(Packet, - ?ERR_SERVICE_UNAVAILABLE), + Txt = <<"No module is handling this query">>, + Err = jlib:make_error_reply( + Packet, + ?ERRT_SERVICE_UNAVAILABLE(Lang, Txt)), ejabberd_router:route(To, From, Err) end; reply -> ok; |