From c0ef054f6fa605219b88d41f2d2bf37c52f08d83 Mon Sep 17 00:00:00 2001 From: Evgeniy Khramtsov Date: Tue, 16 Jan 2018 18:06:31 +0300 Subject: [PATCH] Do not try to start ezlib application too frequently This may overload Erlang applicaton controller --- src/ejabberd_listener.erl | 9 +++++++++ src/xmpp_socket.erl | 1 - 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/ejabberd_listener.erl b/src/ejabberd_listener.erl index 7cad65804..56843e5b5 100644 --- a/src/ejabberd_listener.erl +++ b/src/ejabberd_listener.erl @@ -576,6 +576,7 @@ transform_options(Opt, Opts) -> validate_module_options(Module, Opts) -> try Module:listen_opt_type('') of _ -> + maybe_start_zlib(Opts), lists:filtermap( fun({Opt, Val}) -> case validate_module_option(Module, Opt, Val) of @@ -664,5 +665,13 @@ all_zero_ip(Opts) -> false -> {0,0,0,0} end. +maybe_start_zlib(Opts) -> + case proplists:get_bool(zlib, Opts) of + true -> + ejabberd:start_app(ezlib); + false -> + ok + end. + opt_type(listen) -> fun validate_cfg/1; opt_type(_) -> [listen]. diff --git a/src/xmpp_socket.erl b/src/xmpp_socket.erl index 358a3adbc..40984ac30 100644 --- a/src/xmpp_socket.erl +++ b/src/xmpp_socket.erl @@ -166,7 +166,6 @@ compress(SocketData) -> compress(SocketData, undefined). compress(#socket_state{receiver = undefined, sockmod = SockMod, socket = Socket} = SocketData, Data) -> - ejabberd:start_app(ezlib), {ok, ZlibSocket} = ezlib:enable_zlib(SockMod, Socket), case Data of undefined -> ok;