summaryrefslogtreecommitdiff
path: root/src/ejabberd_s2s.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-03-10 15:12:43 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-03-10 15:12:43 +0300
commit02064ae12afe9ebbe92196575b427436398fd680 (patch)
treee9262548102b4096020a9c50b7c230856b6cc7c8 /src/ejabberd_s2s.erl
parentReport more TLS errors (diff)
Add support for file-based queues
It's now possible to use files as internal packet queues. The following options are introduced: * queue_type: the option can be set to `ram` (default) or `file`. The option can be set per virtual host. * queue_dir: path to the directory where queues will be allocated. The default is 'queue' directory inside Mnesia directory. This is a global option and cannot be set per virtual host.
Diffstat (limited to 'src/ejabberd_s2s.erl')
-rw-r--r--src/ejabberd_s2s.erl14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/ejabberd_s2s.erl b/src/ejabberd_s2s.erl
index 99ee6de9..40492d8d 100644
--- a/src/ejabberd_s2s.erl
+++ b/src/ejabberd_s2s.erl
@@ -45,7 +45,7 @@
external_host_overloaded/1, is_temporarly_blocked/1,
get_commands_spec/0, zlib_enabled/1, get_idle_timeout/1,
tls_required/1, tls_verify/1, tls_enabled/1, tls_options/2,
- host_up/1, host_down/1]).
+ host_up/1, host_down/1, queue_type/1]).
%% gen_server callbacks
-export([init/1, handle_call/3, handle_cast/2,
@@ -285,6 +285,14 @@ get_idle_timeout(LServer) ->
(infinity) -> infinity
end, timer:minutes(10)).
+-spec queue_type(binary()) -> ram | file.
+queue_type(LServer) ->
+ case ejabberd_config:get_option(
+ {s2s_queue_type, LServer}, opt_type(s2s_queue_type)) of
+ undefined -> ejabberd_config:default_queue_type(LServer);
+ Type -> Type
+ end.
+
%%====================================================================
%% gen_server callbacks
%%====================================================================
@@ -739,7 +747,9 @@ opt_type(s2s_timeout) ->
fun(I) when is_integer(I), I>=0 -> I;
(infinity) -> infinity
end;
+opt_type(s2s_queue_type) ->
+ fun(ram) -> ram; (file) -> file end;
opt_type(_) ->
[route_subdomains, s2s_access, s2s_certfile,
s2s_ciphers, s2s_dhfile, s2s_cafile, s2s_protocol_options,
- s2s_tls_compression, s2s_use_starttls, s2s_timeout].
+ s2s_tls_compression, s2s_use_starttls, s2s_timeout, s2s_queue_type].