aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_app.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_app.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 '')
-rw-r--r--src/ejabberd_app.erl11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/ejabberd_app.erl b/src/ejabberd_app.erl
index f4d10e5a5..01f0c4c99 100644
--- a/src/ejabberd_app.erl
+++ b/src/ejabberd_app.erl
@@ -49,6 +49,7 @@ start(normal, _Args) ->
setup_if_elixir_conf_used(),
ejabberd_config:start(),
set_settings_from_config(),
+ file_queue_init(),
maybe_add_nameservers(),
connect_nodes(),
case ejabberd_sup:start_link() of
@@ -167,6 +168,16 @@ set_settings_from_config() ->
60),
net_kernel:set_net_ticktime(Ticktime).
+file_queue_init() ->
+ QueueDir = case ejabberd_config:queue_dir() of
+ undefined ->
+ {ok, MnesiaDir} = application:get_env(mnesia, dir),
+ filename:join(MnesiaDir, "queue");
+ Path ->
+ Path
+ end,
+ p1_queue:start(QueueDir).
+
start_apps() ->
crypto:start(),
ejabberd:start_app(sasl),