[ejabberd] [ANN] ejabberd 17.06

Jérôme Sautret jerome.sautret at process-one.net
Tue Jul 4 12:12:59 MSK 2017

ejabberd 17.06 includes a lot of improvements over the previous 17.04
release. To name the most important ones: new caching system, Riak
support for several modules and introduction of Certificate Manager.

Certificate Manager is a feature that has been requested by many
organizations, allowing administrators to manage their certificates more
easily. From now, starting ejabberd with an invalid certificate will
dump a clear entry in ejabberd log file, explaining what's wrong.
Upcoming ACME support will further refine these improvements we've
worked on early this year to give our users a great experience with
certificate management.

The new cache system is also a new component that allows fine tuning of
ejabberd performance for either small systems or large scale servers. To
use data cache for a supported module, you need to set the module option
`use_cache`. You also have the possibility to define a maximum number of
cache entries and/or maximum life time of cached data, so you keep
control on your memory use. Example:

       use_cache: true
       cache_size: 10000
       cache_life_time: 3600  # 1 hour

The cleanup tasks on all ejabberd API also continue, consider checking
against few methods rename.

## Changes

### API

- Deprecate `misc:encode_base64/1` and `misc:decode_base64/1`
- Rename `is_user_exists` function to `user_exists`
- Allow api access on both ipv4 and 6 loopback addresses
- Fix invalid argument in get_messages_susbset

### Admin

- Refactor ejabberdctl
- Improve ejabberdctl parameters parsing
- Quote all paths to allow spaces in directory names
- update-deps-releases.pl: Show operations to perform before asking to
 apply them
- Fix Salt import from prosody SCRAMmed password

### Configuration

- Validate module options on start_module/2
- Validate new options before module reloading
- Validate second-level options
- Introduce `iqdisc` global option
- stream_management listen option deprecated, use mod_stream_mgmt
- Check presence of some files during option validation
- Speedup configuration options lookup
- Validate all certfiles on startup
- Only validate certfiles if `public_key:short_name_hash/1` is available
- Introduce Certficate Manager

### Commands

- Add clear_cache admin command
- Parse correctly presence_broadcast option in change_room_option
- Describe command arguments and results in `mod_muc_admin`
- Improve export2sql explanation; remove obsolete and duplicated command
- Fix and document `push_roster_all` command
- Fix mod_muc_admin command set_room_affiliation
- Fix invalid {args,result}_examples in mod_muc_admin
- Fix srg_user_add/del for non-Mnesia database backends
- Make ext_mod api return rescode

### Compilation

- Erlang 17.5 or higher is required
- Add `--enable-system-deps` configure option
- Add `--enable-stun` and `--enable-sip` configure options

### Core

- Speedup Mnesia tables initialization
- Improve Mnesia tables creation and transformation
- Improve `ejabberd_c2s:close()`
- ejabberd_c2s: Don't close session on stream resume
- Speedup loading of translation files
- Fix `ejabberd_router:is_my_route/1`
- Don't let a receiver crash if a controller is unavailable
- Fix OTP-17.5 support
- websocket: Catch exception that may happen when sending data over

### Databases

- New `sql_connect_timeout` option
- New `sql_query_timeout` option
- Get rid of sql_queries.erl
- Use round-robin algorithm when selecting worker from DB pool
- Add Riak as BOSH RAM backend
- Add Riak as mod_proxy65 RAM backend
- Add Riak as mod_carboncopy RAM backend
- Add Riak as router RAM backend
- Add Riak as session manager RAM backend
- Fix cleaning of Riak route table
- Add pubsub import from prosody/metronome
- Fix username in mam export
- Fix Salt import from prosody SCRAMmed password
- In offline export to SQL, first write all DELETE, later all INSERT

### Cache

- Implement cache for mod_announce
- Implement cache for mod_private
- Implement cache for mod_privacy/mod_blocking
- Implement cache for mod_last
- Implement cache for mod_vcard and mod_vcard_xupdate
- Implement cache for roster
- Add cache options to the validator
- Use cache for authentication backends
- Use new cache API in mod_shared_roster_ldap
- Use new cache API in ejabberd_oauth
- Use new cache API in mod_mam
- Use new cache API in mod_caps
- Use cache in front of Redis/SQL RAM backends

### Modules

- mod_http_upload: Add support for HTTP File Upload 0.3.0
- mod_mam: Added export function
- mod_metrics: Don't leak with UDP sockets
- mod_metrics: New options ip and port
- mod_muc: Allow a room admin to un/subscribe another JID
- mod_offline: Don't store messages via a single process
- mod_offline: Make sure only jabber:x:event tag is present in offline
- mod_register: New option 'access_remove' ACL
- mod_stream_mgmt: Preserve stanza count on timeout
- mod_vcard_ldap: Parse `ldap_uids` like in eldap_utils
- mod_client_state: Reset state on session resume
- mod_metrics: Fix IP address parsing
- mod_pubsub: Avoid useless calls on simples subscriptions
- mod_block_strangers: Add allow_local_users option

### Elixir

- Update elixir to v1.4.4

### Installer

- Upgrade OTP to 19.3

## Feedback

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

The source package and binary installers are available at

If you suspect that you've found a bug, please search or fill a bug
report on https://github.com/processone/ejabberd/issues
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.jabber.ru/pipermail/ejabberd/attachments/20170704/0723b328/attachment.html>

More information about the ejabberd mailing list