This may overload Erlang applicaton controller
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
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].
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;