summaryrefslogtreecommitdiff
path: root/src/ejabberd_sm.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2016-03-31 11:00:29 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2016-03-31 11:00:29 +0300
commitfced8dc3d926ef733775725225a437c2c1656a4f (patch)
tree7d66931a79e0767bf25ff78820619961d5bddca9 /src/ejabberd_sm.erl
parentProvide authzid in scream response (diff)
Replace some ?ERR_* macros with ?ERRT_*
Diffstat (limited to 'src/ejabberd_sm.erl')
-rw-r--r--src/ejabberd_sm.erl32
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;