Badlop
589521bfd8
Update copyright year to 2024 ( #4139 )
2024-01-22 17:29:13 +01:00
Alexey Shchepin
eeacace02a
Update some modules to the new gen_mod API
2023-08-09 17:08:45 +03:00
Alexey Shchepin
4bd77797fc
Add shorter forms for gen_mod hook/iq_handler API
2023-08-01 18:14:08 +03:00
Alexey Shchepin
5a9099f49c
Extend gen_mod API to simplify hooks and IQ handlers registration
2023-07-31 16:52:00 +03:00
Badlop
0bbc255814
Dialyzer dirty workarounds because re:mp() is not an exported type
...
Since Erlang/OTP 26, Dialyzer by default reports unknown types.
ejabberd's type specs refer to the re:mp() type,
but that isn't exported in the OTP source code,
and cannot be used in any other modules.
This commit provides very dirty workarounds, and any cleaner
alternative is very welcomed.
2023-06-09 00:02:15 +02:00
Badlop
243697e25a
Update copyright year to 2023 ( #3967 )
2023-01-10 13:52:04 +01:00
Badlop
b3211b1f71
Update copyright year to 2022
2022-02-11 09:39:25 +01:00
Badlop
6e0161470e
Update newest copyright year to 2021 ( #3464 )
2021-01-27 17:02:06 +01:00
Holger Weiss
88f392721b
gen_mod: Reload modules after reloading listeners
...
Make sure modules won't be reloaded before listeners. This is necessary
to allow the (not yet committed) 'mod_stun_disco' module to parse the
listener configuration after configuration reloads.
2020-04-23 20:05:40 +02:00
Badlop
2d32c66fd7
Update copyright to 2020 ( #3149 )
2020-01-28 15:49:23 +01:00
Evgeny Khramtsov
97da380acd
Generate ejabberd.yml.5 man page from source code directly
...
Several documentation callbacks (doc/0 and mod_doc/0) are implemented
and `ejabberdctl man` command is added to generate a man page. Note
that the command requires a2x to be installed (which is a part of
asciidoc package).
2020-01-08 12:24:51 +03:00
Evgeny Khramtsov
5770946f03
Correctly handle unicode in log messages
2019-09-23 15:17:20 +03:00
Evgeny Khramtsov
e227940b85
Improve ACME implementation
...
Fixes #2487 , fixes #2590 , fixes #2638
2019-09-20 12:36:31 +03:00
Evgeny Khramtsov
934392fd7e
Implement reload/3 for mod_http_upload
2019-08-06 12:31:33 +03:00
Evgeny Khramtsov
465e1f5ee1
Fix db_type validation
2019-07-31 18:55:43 +03:00
Evgeny Khramtsov
35576b4608
Improve hooks validator and fix bugs related to hooks registration
2019-07-29 10:46:20 +03:00
Evgeny Khramtsov
15b4b3fa1b
Fix typos using codespell
2019-07-16 22:07:39 +03:00
Evgeny Khramtsov
e1eedd587d
Remove processing of {wait, _} result in gen_mod
...
This is no longer needed
2019-07-15 12:43:55 +03:00
Evgeny Khramtsov
80beb6d6f6
Improve formatting of exceptions
2019-07-07 22:12:14 +03:00
Evgeny Khramtsov
05461d1686
Propagate max_fsm_queue to all modules started as gen_server
2019-07-04 10:26:59 +03:00
Evgeny Khramtsov
4b65fcab62
Avoid code duplication in gen_mod
2019-06-23 17:06:53 +03:00
Evgeny Khramtsov
ef3753aa86
Generate more readable exception
2019-06-17 20:49:43 +03:00
Evgeny Khramtsov
e84391a6a9
Use list_to_existing_atom/1 wherever possible
2019-06-15 15:14:45 +03:00
Evgeny Khramtsov
a02cff0e78
Use new configuration validator
2019-06-14 12:33:26 +03:00
Evgeny Khramtsov
4af99f7b03
Rename ejabberd_config:similar_option/2 -> misc:best_match/2
2019-04-30 09:36:38 +03:00
Evgeny Khramtsov
c56209a27d
Provide a suggestion when unknown module is detected
2019-04-29 21:15:52 +03:00
Evgeny Khramtsov
39bbc7cad8
Provide a suggestion when unknown option is detected
2019-04-29 20:57:59 +03:00
Paweł Chmielowski
eff70951c5
Add tests for offline with mam storage
2019-04-29 16:40:47 +02:00
Paweł Chmielowski
b716b835c4
Add tests for offline use_mam_for_storage
2019-04-29 11:35:18 +02:00
Paweł Chmielowski
8b501f5fe6
Catch potential exceptions in gen_mod:wait_for_process
...
Seems that at ejabberd shutdown, process may terminate before that function
is called, and in that case erlang:monitor throws exception.
2019-04-24 13:46:16 +02:00
Evgeny Khramtsov
8def827f9c
Don't crash on malformed 'modules' section
2019-02-19 12:31:18 +03:00
Badlop
55417dfb37
Update copyright to 2019 ( #2756 )
2019-01-08 22:53:27 +01:00
Paweł Chmielowski
c88a2d0569
Add code for handling deprecations of get_stacktrace()
2018-12-13 11:46:53 +01:00
Evgeny Khramtsov
d60d72d7bf
Don't hide 'undef' exceptions during config validation
2018-09-19 01:00:50 +03:00
Evgeny Khramtsov
dd888f90ec
Improve error formatting
2018-09-17 12:08:04 +03:00
Evgeny Khramtsov
2d246f61dd
Fix some dialyzer warnings
2018-09-09 09:59:08 +03:00
Evgeniy Khramtsov
b30a9f2f75
Better formatting of unexpected return from Module:start/2
2018-08-28 10:41:57 +03:00
Evgeniy Khramtsov
8c796ed027
Better format invalid values when logging them
2018-07-08 20:42:53 +03:00
Evgeniy Khramtsov
fd8e07af47
Get rid of ejabberd.hrl header
...
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
2018-06-14 14:00:47 +03:00
Evgeniy Khramtsov
c3c75affa9
Log modules startup
2018-06-14 10:18:10 +03:00
Evgeniy Khramtsov
43c3134f55
Also format gracefully errors returned during module reload
2018-06-03 18:53:30 +03:00
Evgeniy Khramtsov
0381ce1e75
Better report errors of module startup
2018-05-28 09:19:49 +03:00
Evgeniy Khramtsov
35a076c251
Stop ejabberd initialization on invalid/unknown options
...
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.
2018-05-09 11:44:24 +03:00
Evgeniy Khramtsov
acc162f4f4
Carefully validate options list
2018-04-16 15:48:06 +03:00
Evgeniy Khramtsov
b8505f3e78
Don't crash on invalid module's sub-options
...
Fixes #2387
2018-04-16 11:06:57 +03:00
Holger Weiss
54363f8476
gen_mod: Support global module processes
2018-04-04 18:25:19 +02:00
Holger Weiss
094f586811
gen_mod: Remove frontend process support
...
ejabberd doesn't support frontend processes anymore.
2018-04-04 18:22:59 +02:00
Evgeniy Khramtsov
9373ad20ca
Don't produce a crash dump during intentional exit
...
Also halt faster without relying on timeouts for buffers flushing
2018-03-29 12:14:31 +03:00
Evgeniy Khramtsov
6b079c0ab3
Preserve modules order
...
When modules for some virtual host are about to be started,
they are topologically sorted to preserve dependencies order.
We now keep this order for stop/reload functions to work properly.
2018-03-13 18:18:53 +03:00
Evgeniy Khramtsov
c3eeb8624b
Strip duplicates from module's options
2018-03-07 17:46:16 +03:00