aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2018-01-16 18:06:31 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2018-01-16 18:06:31 +0300
commitc0ef054f6fa605219b88d41f2d2bf37c52f08d83 (patch)
treec14b2dd806740f37153f6302c5a652687e985f14 /src
parentReturn debug message back (diff)
Do not try to start ezlib application too frequently
This may overload Erlang applicaton controller
Diffstat (limited to 'src')
-rw-r--r--src/ejabberd_listener.erl9
-rw-r--r--src/xmpp_socket.erl1
2 files changed, 9 insertions, 1 deletions
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;