Growing and curated ejabberd contributions repository - PR or ask to join !
Go to file
Holger Weiss 8f63b2cbae mod_spam_filter: Check recipient's domain
Don't crash if the module isn't loaded for the 'to' domain.  This would
otherwise happen for stanzas sent to subdomains (e.g., MUC messages).

Thanks to Nico Wellpott for reporting the bug and testing the fix.
2019-04-09 01:21:55 +02:00
atom_pubsub Show more prominently notice that some modules don't work with new ejabberd 2016-09-12 12:06:13 +02:00
ejabberd_auth_http Use p1_rand:bytes instead of crypto to work in supported Erlang versions (#243) 2018-11-07 13:33:54 +01:00
extra Remove obsolete file 2015-04-29 12:59:44 +02:00
ircd Show more prominently notice that some modules don't work with new ejabberd 2016-09-12 12:06:13 +02:00
mod_archive Show more prominently notice that some modules don't work with new ejabberd 2016-09-12 12:06:13 +02:00
mod_cron Update modules for ejabberd 18.06 lack of jlib.hrl and ejabberd.hrl (#251) 2018-07-13 16:18:34 +02:00
mod_default_rooms Import mod_default_rooms 2019-02-27 19:52:28 +01:00
mod_deny_omemo mod_deny_omemo: Also reject actual OMEMO messages 2018-08-17 02:02:47 +02:00
mod_filter Update mod_filter to work with recent ejabberd 2018-09-18 11:53:25 +02:00
mod_grafite Update modules for ejabberd 18.06 lack of jlib.hrl and ejabberd.hrl (#251) 2018-07-13 16:18:34 +02:00
mod_irc mod_irc: Disable spurious vCard->WHOIS requests (thanks to Kousu)(#874) 2019-01-21 14:55:31 +01:00
mod_log_chat Update to work with ejabberd 17.06 2017-06-07 16:40:34 +02:00
mod_logsession Update modules for ejabberd 18.06 lack of jlib.hrl and ejabberd.hrl (#251) 2018-07-13 16:18:34 +02:00
mod_logxml Use mod_opt_type and mod_options to check options values (#268) 2019-02-11 15:36:21 +01:00
mod_mam_mnesia Remove mod_mam_mnesia 2016-03-08 00:14:25 +01:00
mod_message_log mod_message_log: Update for ejabberd 18.12 2018-12-10 12:17:19 +01:00
mod_muc_log_http Update modules for ejabberd 18.06 lack of jlib.hrl and ejabberd.hrl (#251) 2018-07-13 16:18:34 +02:00
mod_openid Show more prominently notice that some modules don't work with new ejabberd 2016-09-12 12:06:13 +02:00
mod_post_log Update modules for ejabberd 18.06 lack of jlib.hrl and ejabberd.hrl (#251) 2018-07-13 16:18:34 +02:00
mod_pottymouth Stop the bloom and normalize processes when stopping mod_pottymouth 2019-02-21 13:32:13 +01:00
mod_profile Show more prominently notice that some modules don't work with new ejabberd 2016-09-12 12:06:13 +02:00
mod_rest Add example call in Curl to mod_rest 2019-02-11 15:39:02 +01:00
mod_s2s_log Update modules for ejabberd 18.06 lack of jlib.hrl and ejabberd.hrl (#251) 2018-07-13 16:18:34 +02:00
mod_shcommands Update modules for ejabberd 18.06 lack of jlib.hrl and ejabberd.hrl (#251) 2018-07-13 16:18:34 +02:00
mod_spam_filter mod_spam_filter: Check recipient's domain 2019-04-09 01:21:55 +02:00
mod_statsdx Update modules for ejabberd 18.06 lack of jlib.hrl and ejabberd.hrl (#251) 2018-07-13 16:18:34 +02:00
mod_webpresence Fix crash using Conversations requesting xml/ (#261) 2018-11-07 13:00:33 +01:00
.gitignore Ignore .beam files 2014-03-14 11:47:54 -05:00
README-broken.md Cleanup for module packaging support in ejabberd 2015-03-11 14:19:35 +01:00
README.md [doc] Mention to run modules_update_specs first 2015-12-23 13:32:09 +01:00

README.md

ejabberd-contrib

This is a collaborative development area for ejabberd module developers and users.

For users

To use an ejabberd module coming from this repository:

  • You need to have ejabberd installed.

  • If you have not already done it, run ejabberdctl modules_update_specs to retrieve the list of available modules.

  • Run ejabberdctl module_install <module> to get the source code and to compile and install the beam file into ejabberd's module search path. This path is either ~/.ejabberd-modules or defined by the CONTRIB_MODULES_PATH setting in ejabberdctl.cfg.

  • Edit the configuration file provided in the conf directory of the installed module and update it to your needs. Then apply the changes to your main ejabberd configuration. In a future release, ejabberd will automatically add this file to its runtime configuration without changes.

  • Run ejabberdctl module_uninstall <module> to remove a module from ejabberd.

For developers

The following organization has been set up for the development:

  • Development and compilation of modules is done by ejabberd. You need ejabberd installed. Use ejabberdctl module_check <module> to ensure it compiles correctly before committing your work. The sources of your module must be located in $CONTRIB_MODULES_PATH/sources/<module>.

  • Compilation can by done manually (if you know what you are doing) so you don't need ejabberd running:

    cd /path/of/module
    mkdir ebin
    /path/of/ejabberd's/erlc \
       -o ebin \
       -I include -I /path/of/ejabberd/lib/ejabberd-XX.YY/include \
       -DLAGER -DNO_EXT_LIB \
       src/*erl
    
  • The module directory structure is usually the following:

    • README.txt: Module description.
    • COPYING: License for the module.
    • doc/: Documentation directory.
    • src/: Erlang source directory.
    • lib/: Elixir source directory.
    • priv/msgs/: Directory with translation files (pot, po and msg).
    • conf/<module>.yml: Configuration for your module.
    • <module>.spec: Yaml description file for your module.
  • Module developers should note in the README.txt file whether the module has requirements or known incompatibilities with other modules.