diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2018-01-16 18:06:31 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2018-01-16 18:06:31 +0300 |
commit | c0ef054f6fa605219b88d41f2d2bf37c52f08d83 (patch) | |
tree | c14b2dd806740f37153f6302c5a652687e985f14 /src | |
parent | Return 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.erl | 9 | ||||
-rw-r--r-- | src/xmpp_socket.erl | 1 |
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; |