Fixed error replying on blocked messages

This commit is contained in:
Alexey Shchepin 2015-04-20 17:01:56 +03:00
parent e8576c23c5
commit fd54181435
1 changed files with 21 additions and 15 deletions

View File

@ -1680,12 +1680,17 @@ handle_info({route, From, To,
of
allow -> {true, Attrs, StateData};
deny ->
Err =
jlib:make_error_reply(Packet,
?ERR_SERVICE_UNAVAILABLE),
ejabberd_router:route(To, From,
Err),
{false, Attrs, StateData}
case xml:get_attr_s(<<"type">>, Attrs) of
<<"error">> -> ok;
<<"result">> -> ok;
_ ->
Err =
jlib:make_error_reply(Packet,
?ERR_SERVICE_UNAVAILABLE),
ejabberd_router:route(To, From,
Err)
end,
{false, Attrs, StateData}
end;
_ -> {true, Attrs, StateData}
end,
@ -2171,15 +2176,16 @@ check_privacy_route(From, StateData, FromRoute, To,
case privacy_check_packet(StateData, From, To, Packet,
out)
of
deny ->
Lang = StateData#state.lang,
ErrText = <<"Your active privacy list has denied "
"the routing of this stanza.">>,
Err = jlib:make_error_reply(Packet,
?ERRT_NOT_ACCEPTABLE(Lang, ErrText)),
ejabberd_router:route(To, From, Err),
ok;
allow -> ejabberd_router:route(FromRoute, To, Packet)
deny ->
Lang = StateData#state.lang,
ErrText = <<"Your active privacy list has denied "
"the routing of this stanza.">>,
Err = jlib:make_error_reply(Packet,
?ERRT_NOT_ACCEPTABLE(Lang, ErrText)),
Err2 = jlib:replace_from_to(To, From, Err),
send_element(StateData, Err2),
ok;
allow -> ejabberd_router:route(FromRoute, To, Packet)
end.
%% Check if privacy rules allow this delivery