aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_s2s_in.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-05-08 12:59:28 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-05-08 12:59:28 +0300
commit01a2c9fe1202f88f20a5acbc729b627ce0ac3c0a (patch)
tree4aba0e94650d1311ab5b2da0e74563b1bd02a876 /src/ejabberd_s2s_in.erl
parentLOG_PATH macro should be of string type (diff)
Add type specs for Module:opt_type/1
Diffstat (limited to 'src/ejabberd_s2s_in.erl')
-rw-r--r--src/ejabberd_s2s_in.erl22
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;