Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2010-10-17 00:45:38 +0400
committerBadlop <badlop@process-one.net>2010-10-17 00:51:50 +0400
commit17b4aaa1f73d5a9bca9d094bd61c49847a724c63 (patch)
tree16274b27f54d5798fe5c6d7e4fbf03484f3e45eb /src/ejabberd_c2s.erl
parenteddbad2c76dce306663141edd5891b8fe78c91ff (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.erl6
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)