diff options
Diffstat (limited to 'src/ejabberd_s2s_in.erl')
-rw-r--r-- | src/ejabberd_s2s_in.erl | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/ejabberd_s2s_in.erl b/src/ejabberd_s2s_in.erl index b1d0ae215..90e0feb27 100644 --- a/src/ejabberd_s2s_in.erl +++ b/src/ejabberd_s2s_in.erl @@ -21,13 +21,12 @@ %%%------------------------------------------------------------------- -module(ejabberd_s2s_in). -behaviour(xmpp_stream_in). --behaviour(ejabberd_config). -behaviour(ejabberd_socket). %% ejabberd_socket callbacks -export([start/2, start_link/2, socket_type/0]). -%% ejabberd_config callbacks --export([opt_type/1, listen_opt_type/1]). +%% ejabberd_listener callbacks +-export([listen_opt_type/1]). %% xmpp_stream_in callbacks -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]). @@ -344,9 +343,18 @@ change_shaper(#{shaper := ShaperName, server_host := ServerHost} = State, Shaper = acl:match_rule(ServerHost, ShaperName, jid:make(RServer)), xmpp_stream_in:change_shaper(State, Shaper). -opt_type(_) -> - []. - +-spec listen_opt_type(shaper) -> fun((any()) -> any()); + (certfile) -> fun((binary()) -> binary()); + (ciphers) -> fun((binary()) -> binary()); + (dhfile) -> fun((binary()) -> binary()); + (cafile) -> fun((binary()) -> binary()); + (protocol_options) -> fun(([binary()]) -> binary()); + (tls_compression) -> fun((boolean()) -> boolean()); + (tls) -> fun((boolean()) -> boolean()); + (supervisor) -> fun((boolean()) -> boolean()); + (max_stanza_type) -> fun((timeout()) -> timeout()); + (max_fsm_queue) -> fun((pos_integer()) -> pos_integer()); + (atom()) -> [atom()]. listen_opt_type(shaper) -> fun acl:shaper_rules_validator/1; listen_opt_type(certfile) -> ejabberd_s2s:opt_type(s2s_certfile); listen_opt_type(ciphers) -> ejabberd_s2s:opt_type(s2s_ciphers); @@ -357,7 +365,7 @@ listen_opt_type(tls_compression) -> ejabberd_s2s:opt_type(s2s_tls_compression); listen_opt_type(tls) -> fun(B) when is_boolean(B) -> B end; listen_opt_type(supervisor) -> fun(B) when is_boolean(B) -> B end; listen_opt_type(max_stanza_size) -> - fun(I) when is_integer(I) -> I; + fun(I) when is_integer(I), I>0 -> I; (unlimited) -> infinity; (infinity) -> infinity end; |