Do not try to start ezlib application too frequently
This may overload Erlang applicaton controller
This commit is contained in:
parent
d35a8805b0
commit
c0ef054f6f
|
@ -576,6 +576,7 @@ transform_options(Opt, Opts) ->
|
||||||
validate_module_options(Module, Opts) ->
|
validate_module_options(Module, Opts) ->
|
||||||
try Module:listen_opt_type('') of
|
try Module:listen_opt_type('') of
|
||||||
_ ->
|
_ ->
|
||||||
|
maybe_start_zlib(Opts),
|
||||||
lists:filtermap(
|
lists:filtermap(
|
||||||
fun({Opt, Val}) ->
|
fun({Opt, Val}) ->
|
||||||
case validate_module_option(Module, Opt, Val) of
|
case validate_module_option(Module, Opt, Val) of
|
||||||
|
@ -664,5 +665,13 @@ all_zero_ip(Opts) ->
|
||||||
false -> {0,0,0,0}
|
false -> {0,0,0,0}
|
||||||
end.
|
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) -> fun validate_cfg/1;
|
||||||
opt_type(_) -> [listen].
|
opt_type(_) -> [listen].
|
||||||
|
|
|
@ -166,7 +166,6 @@ compress(SocketData) -> compress(SocketData, undefined).
|
||||||
compress(#socket_state{receiver = undefined,
|
compress(#socket_state{receiver = undefined,
|
||||||
sockmod = SockMod,
|
sockmod = SockMod,
|
||||||
socket = Socket} = SocketData, Data) ->
|
socket = Socket} = SocketData, Data) ->
|
||||||
ejabberd:start_app(ezlib),
|
|
||||||
{ok, ZlibSocket} = ezlib:enable_zlib(SockMod, Socket),
|
{ok, ZlibSocket} = ezlib:enable_zlib(SockMod, Socket),
|
||||||
case Data of
|
case Data of
|
||||||
undefined -> ok;
|
undefined -> ok;
|
||||||
|
|
Loading…
Reference in New Issue