diff options
author | Badlop <badlop@process-one.net> | 2010-10-17 00:45:38 +0400 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2010-10-17 00:51:50 +0400 |
commit | 17b4aaa1f73d5a9bca9d094bd61c49847a724c63 (patch) | |
tree | 16274b27f54d5798fe5c6d7e4fbf03484f3e45eb /src/ejabberd_c2s.erl | |
parent | eddbad2c76dce306663141edd5891b8fe78c91ff (diff) |
When privacy list denies local user's outgoing stanza, try to return error (EJAB-1320)
See:
http://xmpp.org/extensions/xep-0016.html#example-51
Example 51. Error: contact is blocked
Diffstat (limited to 'src/ejabberd_c2s.erl')
-rw-r--r-- | src/ejabberd_c2s.erl | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index 4a78ebdc1..f2372cbe8 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -1828,6 +1828,12 @@ check_privacy_route(From, StateData, FromRoute, To, Packet) -> {From, To, Packet}, out]) of deny -> + Lang = StateData#state.lang, + ErrText = "Routing of this stanza was denied by your active privacy list", + Err = exmpp_stanza:reply_with_error(Packet, + exmpp_stanza:error(Packet#xmlel.ns, 'not-acceptable', + {Lang, ErrText})), + send_element(StateData, Err), ok; allow -> ejabberd_router:route(FromRoute, To, Packet) |