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_app.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 '')
-rw-r--r-- | src/ejabberd_app.erl | 11 |
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), |