diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-03-10 15:12:43 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-03-10 15:12:43 +0300 |
commit | 02064ae12afe9ebbe92196575b427436398fd680 (patch) | |
tree | e9262548102b4096020a9c50b7c230856b6cc7c8 /src/ejabberd_s2s.erl | |
parent | Report 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.erl | 14 |
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]. |