ejabberd 15.10: HTTP upload, metrics and performance

This month’s ejabberd release contains brand new features, performance optimisations, bugfixes and many other improvements.

This release includes a brand new module to help with file transfer. In XMPP transferring files between users required users to be online at the same time. It all changed with XEP-0363 and it is now possible to share file using HTTP protocol while doing the signaling over XMPP. Thanks to Holger and Evgeny, we are now pleases to include this feature in ejabberd core, with mod_http_upload.

ejabberd now also include a module to export metrics information about ejabberd behaviour to Grapherl, a tool that was developed during the Google Summer of Code by Vanshdeep Singh. This is only the beginning, as we are planning to both increase the number of metrics and available backends in upcoming releases. As a start, you can now track the traffic (both from clients and between servers), the offline messages and the user registration and account deletion.

We improved the overall performance of ejabberd, thanks to optimisation in the XML parser.

We also improved the documentation to help you set up mod_xmlrpc with OAuth for those who were already using it prior to 15.09 release.

Finally, as usual, we fixed bugs and improved many features across the whole server.

Here is the full list of changes.

Changes

Core

c2s: Let stop/1 close XEP-0198 sessions

c2s: Close socket when waiting for resume

s2s: Don’t crash on certificates without extensions

xml: Optimizations in memory allocator

OAuth: Fix cyrsasl_oauth:mech_new call

Modules

mod_http_upload: New HTTP File Upload module (XEP-0363)

mod_http_upload_quota: New module to support user quotas

mod_metrics: New simple metrics module for use with grapherl

mod_mam: Advertise XEP-0313 v0.4 support in room disco

mod_mam: Avoid MAM dups when routing to multiple resources

Compilation

Make: Pass {C,CPP,LD}FLAGS used in main ./configure to deps

Use OTP directory structure for ‘make install’

mix.lock should be commited to ensure consistent builds

Code cosmetic cleanup

Commands

Let modules_update_specs report failures

Fix problem with –auth

Fix unauthenticated calls to commands with policy=user

Improve access_commands option backward compatibility

Configuration

ejabberdctl.cfg: New CONTRIB_MODULES_CONF_DIR

Be able to merge old style configs with {listen,…}

Fix support for macros

mod_ping: New option ping_ack_timeout

Feedback

As usual, the release is tagged in the Git source code repository on Github.