aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2015-03-24 23:10:47 +0100
committerHolger Weiss <holger@zedat.fu-berlin.de>2015-03-24 23:10:47 +0100
commit33c9f21171449ec9b4d7fcd32bb98d7ae7920b10 (patch)
treeb290e491be5da520ad83d1643fa7420e196f77f2
parentFix "IP address not available" error message (diff)
Return error when incoming message is blocked
As per XEP-0016 and XEP-0191, return a service-unavailable error when an incoming message was blocked by a privacy list. This lets the user appear offline to the contact.
-rw-r--r--src/ejabberd_c2s.erl8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
index 7632cb121..0e3f856ca 100644
--- a/src/ejabberd_c2s.erl
+++ b/src/ejabberd_c2s.erl
@@ -1679,7 +1679,13 @@ handle_info({route, From, To,
Packet, in)
of
allow -> {true, Attrs, StateData};
- deny -> {false, Attrs, StateData}
+ deny ->
+ Err =
+ jlib:make_error_reply(Packet,
+ ?ERR_SERVICE_UNAVAILABLE),
+ ejabberd_router:route(To, From,
+ Err),
+ {false, Attrs, StateData}
end;
_ -> {true, Attrs, StateData}
end,