summaryrefslogtreecommitdiff
path: root/src/ejabberd_app.erl (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Update copyright year to 2022Badlop2022-02-111-1/+1
|
* Update newest copyright year to 2021 (#3464)Badlop2021-01-271-1/+1
|
* Integrate nicely with systemdHolger Weiss2021-01-061-0/+2
| | | | | | | | | | | | | | Support systemd's watchdog feature and enable it by default in the unit file, so that ejabberd is auto-restarted if the VM becomes unresponsive. Also, set the systemd startup type to 'notify', so that startup of followup units is delayed until ejabberd signals readiness. While at it, also notify systemd of configuration reload and shutdown states. Note: "NotifyAccess=all" is required as long as "ejabberdctl foreground" runs the VM as a new child process, rather than "exec"ing it. This way, systemd views the ejabberdctl process itself as the main service process, and would discard notifications from other processes by default.
* Update copyright to 2020 (#3149)Badlop2020-01-281-1/+1
|
* Use lager on OTP<22.0Evgeny Khramtsov2019-10-251-0/+2
| | | | This also lowers Erlang/OTP minimum version requirement back to 19.3
* Replace lager with built-in new logging APIEvgeny Khramtsov2019-10-181-2/+0
| | | | | | | | | | | | | | | This change requires Erlang/OTP-21.0 or higher. The commit also deprecates the following options: - log_rotate_date - log_rate_limit Furthermore, these options have no effect. The logger now fully relies on log_rotate_size, that cannot be 0 anymore. The loglevel option now accepts levels in literal formats. Those are: none, emergency, alert, critical, error, warning, notice, info, debug. Old integer values (0-5) are still supported and automatically converted into literal format.
* Correctly handle unicode in log messagesEvgeny Khramtsov2019-09-231-5/+5
|
* Improve hooks validator and fix bugs related to hooks registrationEvgeny Khramtsov2019-07-291-2/+2
|
* Improve ejabberd halting procedureEvgeny Khramtsov2019-07-261-1/+3
|
* Use new configuration validatorEvgeny Khramtsov2019-06-141-55/+66
|
* Add os_mon to included_application, but start it in ej_system_monitorPaweł Chmielowski2019-01-161-0/+2
|
* Move some apps back to included_applicationsPaweł Chmielowski2019-01-161-0/+12
|
* Start ejabberd_logger also when ejabberd:start() is not calledPaweł Chmielowski2019-01-091-0/+1
|
* Use OTP application startup infrastructure for starting dependenciesPaweł Chmielowski2019-01-091-14/+0
|
* Update copyright to 2019 (#2756)Badlop2019-01-081-1/+1
|
* Start fast_tls before pkixPaweł Chmielowski2018-12-061-1/+1
|
* Add ejabberd_stopping hookStu Tomlinson2018-11-191-0/+1
| | | | | This hook allows modules to detect when ejabberd is stopping and adjust behaviour if desired
* Run ejabberd_started hook earlierEvgeny Khramtsov2018-09-291-1/+1
|
* Move certificates processing code to pkix applicationEvgeny Khramtsov2018-09-271-0/+2
| | | | | | | | ==== WARNING: MUST BE ADDED TO RELEASE NOTES ===== The commit introduces the following incompatibility: - Option 'ca_path' is deprecated and has no effect anymore: option 'ca_file' should be used instead if needed. ==================================================
* Add new options for OOM watchdogEvgeniy Khramtsov2018-06-211-1/+1
| | | | | | | | | | | | | | | | | | * oom_watermark: 1..100 Start OOM watchdog only when system memory usage exceeds this value in percents. When the usage drops below the value, OOM watchdog is stopped. The default is 80 (percents). Note that once OOM watchdog is started, it performs full garbage collection periodically: this can be seen as spikes in CPU utilization and drops in RAM usage. If your system is permanently above the watermark, it may cause significant CPU overhead. * oom_queue: positive integer Only trigger OOM killer when total amount of messages in all queues of all Erlang processes is above this value. The default is 10000. Note that this value only takes effect when `oom_killer` is set to `true` (this is the default). Otherwise, only a warning will be logged.
* Get rid of ejabberd.hrl headerEvgeniy Khramtsov2018-06-141-3/+4
| | | | | | | | | The header consisted of too many unrelated stuff and macros misuse. Some stuff is moved into scram.hrl and type_compat.hrl. All macros have been replaced with the corresponding function calls. TODO: probably type_compat.hrl is not even needed anymore since we support only Erlang >= OTP 17.5
* Stop ejabberd initialization on invalid/unknown optionsEvgeniy Khramtsov2018-05-091-16/+21
| | | | | | | | | | | | | Since now, ejabberd doesn't ignore unknown options and doesn't allow to have options with malformed values. The rationale for this is to avoid unexpected behaviour during runtime, i.e. to conform to "fail early" approach. Note that it's safe to reload a configuration with potentialy invalid and/or unknown options: this will not halt ejabberd, but will only prevent the configuration from loading. ***NOTE FOR PACKAGE BUILDERS*** This new behaviour should be documented in the upgrade notes.
* Don't produce a crash dump during intentional exitEvgeniy Khramtsov2018-03-291-2/+1
| | | | Also halt faster without relying on timeouts for buffers flushing
* Always build eimp dependencyEvgeniy Khramtsov2018-01-151-9/+1
| | | | | | Even if no suitable C graphics libraries are detected at compile time, the package is still usable because it provides `eimp:get_type/1` which is used by mod_avatar.
* Update copyright datesEvgeniy Khramtsov2018-01-051-1/+1
|
* Revert "Start os_mon application"Paweł Chmielowski2017-12-271-1/+0
| | | | This reverts commit 82b3bbf360ecf9bb9e96dcd59fc631ecbdd5fc0d.
* Start os_mon applicationPaweł Chmielowski2017-12-271-0/+1
|
* Rewrite ejabberd system monitorEvgeniy Khramtsov2017-12-171-0/+1
| | | | | | | | | | | | Previous version was inefficient: it had a lot of false positives along with a lot of false negatives, making its usage pointless. The new verion is based on memsup(3erl) application: the OOM watchdog is only started when total OS memory consumption is more than 80%. A watchdog periodically inspects all running processes and collects statistics about overloaded ones (those queueing a lot of messages). If the OOM killer is enabled (`oom_killer: true`), all overloaded processes would be killed. By default, OOM killer is enabled. When memory consumption is back to normal, the OOM watchdog is stopped.
* Halt ejabberd if the top supervisor fails to startEvgeniy Khramtsov2017-11-141-1/+3
|
* Introduce mod_avatarEvgeniy Khramtsov2017-09-171-1/+10
| | | | | | | | | | | | | | | | | | | | | | The purpose of the module is to cope with legacy and modern XMPP clients posting avatars. It automatically converts vCard based avatars (XEP-0153) to PEP based avatars (XEP-0084) and vice versa. Also, the module supports convertation between avatar image formats on the fly: this is controlled by `convert` option. For example, to convert all avatars into PNG format, configure the module as: mod_avatar: convert: default: png In order to convert only `webp` format to `jpeg`, set the following: mod_avatar: convert: webp: jpeg Note: the module depends on mod_vcard, mod_vcard_xupdate and mod_pubsub. Also, ejabberd should be built with --enable-graphics option.
* Make ejabberd_cluster modularEvgeniy Khramtsov2017-07-061-23/+2
| | | | | For setting the cluster backend new global option 'cluster_backend' is introduced. The default and only available value at the moment is 'mnesia'
* Add type specs for Module:opt_type/1Evgeniy Khramtsov2017-05-081-0/+3
|
* Don't validate an option in ejabberd_config:get_option() functionsEvgeniy Khramtsov2017-04-291-10/+2
| | | | | | | | | | | | | The commit introduces the following changes: * Now there is no need to pass validating function in ejabberd_config:get_option() functions, because the configuration keeps already validated values. * New function ejabberd_config:get_option/1 is introduced * Function ejabberd_config:get_option/3 is deprecated. If the function is still called, the second argument (validating function) is simply ignored. * The second argument for ejabberd_config:get_option/2 is now a default value, not a validating function.
* Store options using p1_options moduleEvgeniy Khramtsov2017-04-271-1/+3
|
* Speedup Mnesia tables initializationEvgeniy Khramtsov2017-04-211-24/+1
|
* Change mnesia dir detectionAlexey Shchepin2017-04-031-1/+1
|
* Merge branch 'new_queue'Evgeniy Khramtsov2017-03-241-0/+11
|\ | | | | | | | | | | Conflicts: rebar.config src/mod_muc_admin.erl
| * Add support for file-based queuesEvgeniy Khramtsov2017-03-101-0/+11
| | | | | | | | | | | | | | | | | | | | | | 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.
* | Log startup timeEvgeniy Khramtsov2017-03-181-2/+4
|/
* Change loglevel on configuration reloadEvgeniy Khramtsov2017-02-271-15/+1
|
* Put more stuff under supervisionEvgeniy Khramtsov2017-02-261-13/+9
|
* Improve startup procedureEvgeniy Khramtsov2017-02-241-33/+3
|
* Start/stop virtual hosts when reloading configuration fileEvgeniy Khramtsov2017-02-231-13/+3
|
* Merge branch 'new_stream'Evgeniy Khramtsov2017-01-201-6/+6
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/cyrsasl.erl src/ejabberd_c2s.erl src/ejabberd_cluster.erl src/ejabberd_frontend_socket.erl src/ejabberd_node_groups.erl src/ejabberd_router.erl src/mod_bosh.erl src/mod_ip_blacklist.erl src/mod_muc_mnesia.erl src/mod_offline.erl src/mod_proxy65_sm.erl
| * Implement database backend interface for ejabberd_routerEvgeniy Khramtsov2017-01-111-5/+5
| |
| * Add xmpp_stream_out behaviour and rewrite s2s/SM codeEvgeniy Khramtsov2016-12-281-1/+1
| |
* | Update copyright date automatically (#1442)Badlop2017-01-021-1/+1
|/
* Don't forget to start XMPP applicationEvgeniy Khramtsov2016-11-211-3/+1
|
* Use p1_http from p1_utils 1.0.6Christophe Romain2016-11-141-1/+0
|
* Merge branch 'master' into xml-ngEvgeniy Khramtsov2016-11-121-0/+28
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/adhoc.erl src/cyrsasl_oauth.erl src/ejabberd_c2s.erl src/ejabberd_config.erl src/ejabberd_service.erl src/gen_mod.erl src/mod_admin_extra.erl src/mod_announce.erl src/mod_carboncopy.erl src/mod_client_state.erl src/mod_configure.erl src/mod_echo.erl src/mod_mam.erl src/mod_muc.erl src/mod_muc_room.erl src/mod_offline.erl src/mod_pubsub.erl src/mod_stats.erl src/node_flat_sql.erl src/randoms.erl