From 01a2c9fe1202f88f20a5acbc729b627ce0ac3c0a Mon Sep 17 00:00:00 2001 From: Evgeniy Khramtsov Date: Mon, 8 May 2017 12:59:28 +0300 Subject: Add type specs for Module:opt_type/1 --- src/ejabberd_s2s_in.erl | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'src/ejabberd_s2s_in.erl') 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; -- cgit v1.2.3