ejabberd 17.09

ejabberd 17.09 is out! This release mostly contains bugfix and adds few improvements.

Jérôme Sautret
· 2 min read
Send by email

New feature

New mod_avatar module

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 conversion 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. It’s not working on Linux-armhf and Windows yet. If you compile from sources, ejabberd should be configured with –enable-graphics option.

Updated OpenSSL libraries

Our installers now include OpenSSL 1.0.2l. These libraries are used as a fallback only if you don’t have them on your system, else the system wide version is used.
On Very old Linux systems (Debian wheezy with older glibc for example), ejabberd will fail to load them. In this situation, you have to remove libcrypto and libssl installed in lib/linux-x86_64 of your installer, and ejabberd will use older OpenSSL 1.0.1 from your system. We highly recommend to plan a system upgrade in this case anyway.

Changes

Admin

  • Harden ejabberdctl
  • Fix ejabberdctl quoting when using iex
  • Call earlier deps configure scripts during compilation
  • Fix iexdebug and iexlive commands
  • Quote $PEER in ping command to avoid hostnames containing “-” being interpreted as arithmetic
  • Docker: Sync containers from rroemhild and add instructions in README
  • Use eimp instead of ImageMagick calls for thumbnails creation
  • Add forgotten caching options to the validator
  • Fix ‘make install’ to work with new output from rebar list-deps
  • Rewrite muc_register_nick and muc_unregister_nick to be DB independent
  • WebAdmin: Fix deletion of multiple offline messages

Encryption

  • Add support for XEP-0368 in outgoing s2s: SRV records for XMPP over TLS
  • Deprecate s2s_use_starttls: required_trusted
  • Don’t attempt to access(2) a certificate file
  • Let ‘domain_certfile’ take higher precedence instead of s2s_certfile or c2s_certfile

Databases

  • mysql.sql: Use multi-column index on username/ID
  • Use forked repo of Riak Erlang client to support OTP20

Modules

  • mod_avatar: New module with support for legacy and modern clients
  • mod_block_strangers: Introduce option ‘allow_transports’
  • mod_block_strangers: Block messages from strangers before mod_mam/mod_offline processing
  • mod_http_upload: Don’t ignore ‘custom_headers’
  • mod_muc: Improve presence-error and unavailable of multi-session occupants
  • mod_multicast: Fix start and reading of configured limits
  • mod_mam: Simplify check for anon MUC JID filtering
  • mod_mam: Refuse filtering anon MUC queries by JID
  • mod_privacy: Explicitly match against
  • mod_register: Introduce ‘redirect_url’ option
  • mod_stream_mgmt: Delete ‘c2s_init’ hook
  • mod_vcard_xupdate: Also replace vcard-x-update in direct presences

PubSub

  • Fix get_items/get_item calls
  • Add correct order when requesting all items
  • Implement ‘6.5.7 Requesting the Most Recent Items’
  • Fix RSM support on SQL
  • Add RSM support on mnesia
  • Fix node_options: default options only apply on first plugin
  • Broadcast updated node configuration
  • Enforce controls on publish and delete items

Miscelanea

  • Preserve correct order of deserialized XML elements
  • Suppress push notifications for online clients
  • Extract strings and prepare translation files works again

Feedback

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

The source package and binary installers are available at ejabberd XMPP & MQTT server download page.

If you suspect that you’ve found a bug, please search or fill a bug report on Github.