Improve some validators

This commit is contained in:
Evgeny Khramtsov 2019-07-15 09:59:07 +03:00
parent cd36bb6eda
commit 1fe1322bc1
3 changed files with 13 additions and 18 deletions

View File

@ -774,12 +774,6 @@ rest_dir(0, Path, <<H, T/binary>>) ->
rest_dir(0, <<H, Path/binary>>, T); rest_dir(0, <<H, Path/binary>>, T);
rest_dir(N, Path, <<_H, T/binary>>) -> rest_dir(N, Path, T). rest_dir(N, Path, <<_H, T/binary>>) -> rest_dir(N, Path, T).
expand_custom_headers(Headers) ->
lists:map(fun({K, V}) ->
{K, misc:expand_keyword(<<"@VERSION@">>, V,
ejabberd_option:version())}
end, Headers).
code_to_phrase(100) -> <<"Continue">>; code_to_phrase(100) -> <<"Continue">>;
code_to_phrase(101) -> <<"Switching Protocols ">>; code_to_phrase(101) -> <<"Switching Protocols ">>;
code_to_phrase(200) -> <<"OK">>; code_to_phrase(200) -> <<"OK">>;
@ -904,21 +898,22 @@ normalize_path([Part | Path], Norm) ->
listen_opt_type(tag) -> listen_opt_type(tag) ->
econf:binary(); econf:binary();
listen_opt_type(request_handlers) -> listen_opt_type(request_handlers) ->
econf:and_then( econf:map(
econf:map( econf:and_then(
econf:binary(), econf:binary(),
econf:beam([[{socket_handoff, 3}, {process, 2}]])), fun(Path) -> str:tokens(Path, <<"/">>) end),
fun(L) -> econf:beam([[{socket_handoff, 3}, {process, 2}]]));
[{str:tokens(Path, <<"/">>), Mod} || {Path, Mod} <- L]
end);
listen_opt_type(default_host) -> listen_opt_type(default_host) ->
econf:domain(); econf:domain();
listen_opt_type(custom_headers) -> listen_opt_type(custom_headers) ->
econf:and_then( econf:map(
econf:map( econf:binary(),
econf:and_then(
econf:binary(), econf:binary(),
econf:binary()), fun(V) ->
fun expand_custom_headers/1). misc:expand_keyword(<<"@VERSION@">>, V,
ejabberd_option:version())
end)).
listen_options() -> listen_options() ->
[{ciphers, undefined}, [{ciphers, undefined},

View File

@ -349,7 +349,7 @@ mod_opt_type(via) ->
{Type, {Host, Port}} {Type, {Host, Port}}
end)). end)).
-spec mod_options(binary()) -> [{via, [{tcp | tls | udp, {binary(), 1..65535}}]} | -spec mod_options(binary()) -> [{via, [{tcp | tls | udp, {binary(), 1..65535 | undefined}}]} |
{atom(), term()}]. {atom(), term()}].
mod_options(Host) -> mod_options(Host) ->
Route = #uri{scheme = <<"sip">>, Route = #uri{scheme = <<"sip">>,

View File

@ -40,7 +40,7 @@ routes(Opts) when is_map(Opts) ->
routes(Host) -> routes(Host) ->
gen_mod:get_module_opt(Host, mod_sip, routes). gen_mod:get_module_opt(Host, mod_sip, routes).
-spec via(gen_mod:opts() | global | binary()) -> [{'tcp' | 'tls' | 'udp',{binary(),1..65535}}]. -spec via(gen_mod:opts() | global | binary()) -> [{'tcp' | 'tls' | 'udp',{binary(),1..65535 | 'undefined'}}].
via(Opts) when is_map(Opts) -> via(Opts) when is_map(Opts) ->
gen_mod:get_opt(via, Opts); gen_mod:get_opt(via, Opts);
via(Host) -> via(Host) ->