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:
authorHolger Weiss <holger@zedat.fu-berlin.de>2016-05-06 14:59:21 +0300
committerHolger Weiss <holger@zedat.fu-berlin.de>2016-05-06 14:59:21 +0300
commit51238bff833299bae7c40e0ac744b5f50f81092b (patch)
treec0e8142c8113d18bc69580be56c6899d077f9c52 /src/ejabberd_local.erl
parent86d5cf6d6cd11fb744b0a26634f4de7c48f67af0 (diff)
Bounce messages sent to server JID
If a message is sent to the server JID (without node part), generate an error message rather than dropping the message silently.
Diffstat (limited to 'src/ejabberd_local.erl')
-rw-r--r--src/ejabberd_local.erl11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/ejabberd_local.erl b/src/ejabberd_local.erl
index 5566073e9..2ba943693 100644
--- a/src/ejabberd_local.erl
+++ b/src/ejabberd_local.erl
@@ -271,7 +271,16 @@ do_route(From, To, Packet) ->
#xmlel{name = Name} = Packet,
case Name of
<<"iq">> -> process_iq(From, To, Packet);
- <<"message">> -> ok;
+ <<"message">> ->
+ #xmlel{attrs = Attrs} = Packet,
+ case fxml:get_attr_s(<<"type">>, Attrs) of
+ <<"headline">> -> ok;
+ <<"error">> -> ok;
+ _ ->
+ Err = jlib:make_error_reply(Packet,
+ ?ERR_SERVICE_UNAVAILABLE),
+ ejabberd_router:route(To, From, Err)
+ end;
<<"presence">> -> ok;
_ -> ok
end;