diff --git a/src/ejabberd_listener.erl b/src/ejabberd_listener.erl index 9df8678b0..1f38e88ee 100644 --- a/src/ejabberd_listener.erl +++ b/src/ejabberd_listener.erl @@ -175,7 +175,11 @@ listen_tcp(PortIP, Module, SockOpts, Port, IPS) -> catch _:_ -> [] end, - Res = gen_tcp:listen(Port, [binary, + DeliverAs = case Module of + ejabberd_xmlrpc -> list; + _ -> binary + end, + Res = gen_tcp:listen(Port, [DeliverAs, {packet, 0}, {active, false}, {reuseaddr, true},