diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-04-29 11:39:40 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-04-29 11:39:40 +0300 |
commit | b82b93f8f0c229e94a89469b0754bab0e28cd17c (patch) | |
tree | 56f5c7a25aa19254b4f30b1cf33fc34dcbadcbb7 /src/ejabberd_s2s_out.erl | |
parent | Don't re-define validation functions in multiple places (diff) |
Don't validate an option in ejabberd_config:get_option() functions
The commit introduces the following changes:
* Now there is no need to pass validating function in
ejabberd_config:get_option() functions, because the configuration
keeps already validated values.
* New function ejabberd_config:get_option/1 is introduced
* Function ejabberd_config:get_option/3 is deprecated. If the function
is still called, the second argument (validating function) is simply
ignored.
* The second argument for ejabberd_config:get_option/2 is now
a default value, not a validating function.
Diffstat (limited to 'src/ejabberd_s2s_out.erl')
-rw-r--r-- | src/ejabberd_s2s_out.erl | 62 |
1 files changed, 20 insertions, 42 deletions
diff --git a/src/ejabberd_s2s_out.erl b/src/ejabberd_s2s_out.erl index 3c9e1a1c9..deff3e5b5 100644 --- a/src/ejabberd_s2s_out.erl +++ b/src/ejabberd_s2s_out.erl @@ -191,42 +191,21 @@ tls_enabled(#{server := LServer}) -> connect_timeout(#{server := LServer}) -> ejabberd_config:get_option( {outgoing_s2s_timeout, LServer}, - fun(TimeOut) when is_integer(TimeOut), TimeOut > 0 -> - timer:seconds(TimeOut); - (infinity) -> - infinity - end, timer:seconds(10)). + timer:seconds(10)). default_port(#{server := LServer}) -> - ejabberd_config:get_option( - {outgoing_s2s_port, LServer}, - fun(I) when is_integer(I), I > 0, I =< 65536 -> I end, - 5269). + ejabberd_config:get_option({outgoing_s2s_port, LServer}, 5269). address_families(#{server := LServer}) -> ejabberd_config:get_option( {outgoing_s2s_families, LServer}, - fun(Families) -> - lists:map( - fun(ipv4) -> inet; - (ipv6) -> inet6 - end, Families) - end, [inet, inet6]). + [inet, inet6]). dns_retries(#{server := LServer}) -> - ejabberd_config:get_option( - {s2s_dns_retries, LServer}, - fun(I) when is_integer(I), I>=0 -> I end, - 2). + ejabberd_config:get_option({s2s_dns_retries, LServer}, 2). dns_timeout(#{server := LServer}) -> - ejabberd_config:get_option( - {s2s_dns_timeout, LServer}, - fun(I) when is_integer(I), I>=0 -> - timer:seconds(I); - (infinity) -> - infinity - end, timer:seconds(10)). + ejabberd_config:get_option({s2s_dns_timeout, LServer}, timer:seconds(10)). handle_auth_success(Mech, #{sockmod := SockMod, socket := Socket, ip := IP, @@ -391,10 +370,7 @@ mk_bounce_error(_Lang, _State) -> -spec get_delay() -> non_neg_integer(). get_delay() -> - MaxDelay = ejabberd_config:get_option( - s2s_max_retry_delay, - fun(I) when is_integer(I), I > 0 -> I end, - 300), + MaxDelay = ejabberd_config:get_option(s2s_max_retry_delay, 300), crypto:rand_uniform(1, MaxDelay). -spec set_idle_timeout(state()) -> state(). @@ -464,26 +440,28 @@ maybe_report_huge_timeout(_, _) -> ok. opt_type(outgoing_s2s_families) -> - fun (Families) -> - true = lists:all(fun (ipv4) -> true; - (ipv6) -> true - end, - Families), - Families + fun(Families) -> + lists:map( + fun(ipv4) -> inet; + (ipv6) -> inet6 + end, Families) end; opt_type(outgoing_s2s_port) -> fun (I) when is_integer(I), I > 0, I =< 65536 -> I end; opt_type(outgoing_s2s_timeout) -> - fun (TimeOut) when is_integer(TimeOut), TimeOut > 0 -> - TimeOut; - (infinity) -> infinity + fun(TimeOut) when is_integer(TimeOut), TimeOut > 0 -> + timer:seconds(TimeOut); + (unlimited) -> + infinity; + (infinity) -> + infinity end; opt_type(s2s_dns_retries) -> fun (I) when is_integer(I), I >= 0 -> I end; opt_type(s2s_dns_timeout) -> - fun (TimeOut) when is_integer(TimeOut), TimeOut > 0 -> - TimeOut; - (infinity) -> infinity + fun(I) when is_integer(I), I>=0 -> timer:seconds(I); + (infinity) -> infinity; + (unlimited) -> infinity end; opt_type(s2s_max_retry_delay) -> fun (I) when is_integer(I), I > 0 -> I end; |