]> granicus.if.org Git - ejabberd/commitdiff
Improve some validators
authorEvgeny Khramtsov <ekhramtsov@process-one.net>
Mon, 15 Jul 2019 06:59:07 +0000 (09:59 +0300)
committerEvgeny Khramtsov <ekhramtsov@process-one.net>
Mon, 15 Jul 2019 06:59:07 +0000 (09:59 +0300)
src/ejabberd_http.erl
src/mod_sip.erl
src/mod_sip_opt.erl

index 368a5227eaa67a8b58d6334d4e729fa7e3857708..12ee51d6642e5c8197b249ebf344c56748825190 100644 (file)
@@ -774,12 +774,6 @@ rest_dir(0, Path, <<H, T/binary>>) ->
     rest_dir(0, <<H, Path/binary>>, 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(101) -> <<"Switching Protocols ">>;
 code_to_phrase(200) -> <<"OK">>;
@@ -904,21 +898,22 @@ normalize_path([Part | Path], Norm) ->
 listen_opt_type(tag) ->
     econf:binary();
 listen_opt_type(request_handlers) ->
-    econf:and_then(
-      econf:map(
+    econf:map(
+      econf:and_then(
        econf:binary(),
-       econf:beam([[{socket_handoff, 3}, {process, 2}]])),
-      fun(L) ->
-             [{str:tokens(Path, <<"/">>), Mod} || {Path, Mod} <- L]
-      end);
+       fun(Path) -> str:tokens(Path, <<"/">>) end),
+      econf:beam([[{socket_handoff, 3}, {process, 2}]]));
 listen_opt_type(default_host) ->
     econf:domain();
 listen_opt_type(custom_headers) ->
-    econf:and_then(
-      econf:map(
+    econf:map(
+      econf:binary(),
+      econf:and_then(
        econf:binary(),
-       econf:binary()),
-      fun expand_custom_headers/1).
+       fun(V) ->
+               misc:expand_keyword(<<"@VERSION@">>, V,
+                                   ejabberd_option:version())
+       end)).
 
 listen_options() ->
     [{ciphers, undefined},
index 54d8ac2519af5d06c42eb95ea1709f1b70cc55e2..a939b17b44526363b6c6c9ef37af81437a797b54 100644 (file)
@@ -349,7 +349,7 @@ mod_opt_type(via) ->
                {Type, {Host, Port}}
        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()}].
 mod_options(Host) ->
     Route = #uri{scheme = <<"sip">>,
index e160d2e12da721ef9dfc32a43c756afab3e8306f..500e6a9490c130694feedcee059154b7c57d99b3 100644 (file)
@@ -40,7 +40,7 @@ routes(Opts) when is_map(Opts) ->
 routes(Host) ->
     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) ->
     gen_mod:get_opt(via, Opts);
 via(Host) ->