mirror of
https://github.com/processone/ejabberd.git
synced 2024-10-29 15:12:12 +01:00
282 lines
11 KiB
Plaintext
282 lines
11 KiB
Plaintext
|
|
||
|
Release Notes
|
||
|
ejabberd 2.1.0
|
||
|
|
||
|
ejabberd 2.1.0 is a major new version for ejabberd adding many
|
||
|
new features, performance and scalability improvements.
|
||
|
|
||
|
ejabberd 2.1.0 includes many new features, improvements and bug fixes.
|
||
|
A complete list of changes can be retrieved from:
|
||
|
http://redir.process-one.net/ejabberd-2.1.0
|
||
|
|
||
|
The new code can be downloaded from ejabberd download page:
|
||
|
http://www.process-one.net/en/ejabberd/
|
||
|
|
||
|
|
||
|
New features and improvements:
|
||
|
|
||
|
* Anti-abuse
|
||
|
- Captcha support (XEP-0158). The example script uses ImageMagick.
|
||
|
- New option: registration_timeout to limit registrations by time
|
||
|
- Use send timeout to avoid locking on gen_tcp:send
|
||
|
- mod_ip_blacklist: client blacklist support by IP
|
||
|
|
||
|
* API
|
||
|
- ejabberd_http provides Host, Port, Headers and Protocol in HTTP requests
|
||
|
- Export function to create MUC room
|
||
|
- New events: s2s_send_packet and s2s_receive_packet
|
||
|
- New event: webadmin_user_parse_query when POST in web admin user page
|
||
|
- Support distributed hooks over the cluster
|
||
|
|
||
|
* Authentification
|
||
|
- Extauth responses: log strange responses and add timeout
|
||
|
|
||
|
* Binary Installer
|
||
|
- Includes exmpp library to support import/export XML files
|
||
|
|
||
|
* Caps
|
||
|
- Remove useless caps tables entries
|
||
|
- mod_caps must handle correctly external contacts with several resources
|
||
|
- Complain if mod_caps disabled and mod_pubsub has PEP plugin enabled
|
||
|
|
||
|
* Clustering and Architecture
|
||
|
|
||
|
* Configuration
|
||
|
- Added option access_max_user_messages for mod_offline
|
||
|
- Added option backlog for ejabberd_listener to increase TCP backlog
|
||
|
- Added option define_macro and use_macro
|
||
|
- Added option include_config_file to include additional configuration files
|
||
|
- Added option max_fsm_queue
|
||
|
- Added option outgoing_s2s_options to define IP address families and timeout
|
||
|
- Added option registration_timeout to ejabberd.cfg.example
|
||
|
- Added option s2s_dns_options to define DNS timeout and retries
|
||
|
- Added option ERL_OPTIONS to ejabberdctl.cfg
|
||
|
- Added option FIREWALL_WINDOW to ejabberdctl.cfg
|
||
|
- Added option EJABBERD_PID_PATH to ejabberdctl.cfg
|
||
|
- Deleted option user_max_messages of mod_offline
|
||
|
- Check certfiles are readable on server start and listener start
|
||
|
- Config file management mix file reading and sanity check
|
||
|
- Include example PAM configuration file: ejabberd.pam
|
||
|
- New ejabberd listener: ejabberd_stun
|
||
|
- Support to bind the same port to multiple interfaces
|
||
|
- New syntax to specify the IP address and IPv6 in listeners
|
||
|
configuration. The old options {ip,{1,2,3,4}} and inet6 are
|
||
|
supported even if they aren't documented.
|
||
|
- New syntax to specify the network protocol: tcp or udp
|
||
|
- Report error at startup if a listener module isn't available
|
||
|
- Only listen in a port when actually ready to serve requests
|
||
|
- In default config, only local accounts can create rooms and PubSub nodes
|
||
|
|
||
|
* Core architecture
|
||
|
- More verbose error reporting for xml:element_to_string
|
||
|
- Deliver messages when first presence is Invisible
|
||
|
- Better log message when config file is not found
|
||
|
- Include original timestamp on delayed presences
|
||
|
|
||
|
* Crypto
|
||
|
- Do not ask certificate for client (c2s)
|
||
|
- SSL code remove from ejabberd in favor of TLS
|
||
|
- Support Zlib compression after STARTTLS encryption
|
||
|
- tls v1 client hello
|
||
|
|
||
|
* Documentation
|
||
|
- Document possible default MUC room options
|
||
|
- Document service_check_from in the Guide
|
||
|
- Document s2s_default_policy and s2s_host in the Guide
|
||
|
- new command and guide instructions to change node name in a Mnesia database
|
||
|
|
||
|
* ejabberd commands
|
||
|
- ejabberd commands: separate command definition and calling interface
|
||
|
- access_commands restricts who can execute what commands and arguments
|
||
|
- ejabberdctl script now displays help and categorization of commands
|
||
|
|
||
|
* HTTP Binding and HTTP Polling
|
||
|
- HTTP-Bind: module optimization and clean-up
|
||
|
- HTTP-Bind: allow configuration of max_inactivity timeout
|
||
|
- HTTP-Poll: turn session timeout into a config file parameter
|
||
|
|
||
|
* Jingle
|
||
|
- STUN server that facilitates the client-to-client negotiation process
|
||
|
|
||
|
* LDAP
|
||
|
- Faster reconnection to LDAP servers
|
||
|
- LDAP filter optimisation: Add ability to filter user in ejabberd and not LDAP
|
||
|
- LDAP differentiates failed auth and unavailable auth service
|
||
|
- Improve LDAP logging
|
||
|
- LDAPS support using TLS.
|
||
|
|
||
|
* Localization
|
||
|
- Use Gettext PO for translators, export to ejabberd MSG
|
||
|
- Support translation files for additional projects
|
||
|
- Most translations are updated to latest code
|
||
|
- New translation to Greek language
|
||
|
|
||
|
* Multi-User Chat (MUC)
|
||
|
- Allow admins to send messages to rooms
|
||
|
- Allow to store room description
|
||
|
- Captcha support in MUC: the admin of a room can configure it to
|
||
|
require participants to fill a captcha to join the room.
|
||
|
- Limit number of characters in Room ID, Name and Description
|
||
|
- Prevent unvoiced occupants from changing nick
|
||
|
- Support Result Set Management (XEP-0059) for listing rooms
|
||
|
- Support for decline of invitation to MUC room
|
||
|
- mod_muc_log options: plaintext format; filename with only room name
|
||
|
|
||
|
* Performance
|
||
|
- Run roster_get_jid_info only if privacy list has subscription or group item
|
||
|
- Significant PubSub performance improvements
|
||
|
|
||
|
* Publish-Subscribe
|
||
|
- Add nodetree filtering/authorization
|
||
|
- Add subscription option support for collection nodes
|
||
|
- Allow Multiple Subscriptions
|
||
|
- Check option of the nodetree instead of checking configuration
|
||
|
- Implement whitelist authorize and roster access model
|
||
|
- Implicit item deletion is not notified when deleting node
|
||
|
- Make PubSub x-data configuration form handles list value
|
||
|
- Make default node name convention XEP-compatible, document usage of hierarchy
|
||
|
- Node names are used verbatim, without separating by slash, unless a
|
||
|
node plugin uses its own separator
|
||
|
- Send authorization update event (XEP-0060, 8.6)
|
||
|
- Support of collection node subscription options
|
||
|
- Support ODBC storage. Experimental, needs more testing.
|
||
|
|
||
|
* Relational databases:
|
||
|
- Added MSSQL 2000 and 2005
|
||
|
- Privacy rules storage in MySQL
|
||
|
- Implement reliable ODBC transaction nesting
|
||
|
|
||
|
* Source Package
|
||
|
- Default installation directories changed. Please see the upgrade notes below.
|
||
|
- Allow more environment variable overrides in ejabberdctl
|
||
|
- ChangeLog is not edited manually anymore; it's generated automatically.
|
||
|
- Install the ejabberd Guide
|
||
|
- Install the ejabberd include files
|
||
|
- New option for the 'configure' script: --enable-user which installs
|
||
|
ejabberd granting permission to manage it to a regular system user;
|
||
|
no need to use root account to.
|
||
|
- Only try to install epam if pam was enabled in configure script
|
||
|
- Spool, config and log dirs: owner writes, group reads, others do nothing.
|
||
|
- Provides an example ejabberd.init file
|
||
|
|
||
|
* S2S
|
||
|
- Option to define s2s outgoing behaviour: IPv4, IPv6 and timeout
|
||
|
- DNS timeout and retries, configurable with s2s_dns_options.
|
||
|
|
||
|
* Shared rosters
|
||
|
- When a member is added/removed to group, send roster upgrade to group members
|
||
|
|
||
|
* Users management
|
||
|
- When account is deleted, cancel presence subscription for all roster items
|
||
|
|
||
|
* XEP Support
|
||
|
- Added XEP-0059 Result Set Management (for listing rooms)
|
||
|
- Added XEP-0082 Date Time
|
||
|
- Added XEP-0085 Chat State Notifications
|
||
|
- Added XEP-0157 Contact Addresses for XMPP Services
|
||
|
- Added XEP-0158 CAPTCHA Forms (in MUC rooms)
|
||
|
- Added STUN server, for XEP-0176: Jingle ICE-UDP Transport Method
|
||
|
- Added XEP-0199 XMPP Ping
|
||
|
- Added XEP-0202 Entity Time
|
||
|
- Added XEP-0203 Delayed Delivery
|
||
|
- Added XEP-0227 Portable Import/Export Format for XMPP-IM Servers
|
||
|
- Added XEP-0237 Roster Versioning
|
||
|
|
||
|
* Web Admin
|
||
|
- Display the connection method of user sessions
|
||
|
- Cross link of ejabberd users in the list of users and rosters
|
||
|
- Improved the browsing menu: don't disappear when browsing a host or node
|
||
|
- Include Last-Modified HTTP header in responses to allow caching
|
||
|
- Make some Input areas multiline: options of listening ports and modules
|
||
|
- Support PUT and DELETE methods in ejabberd_http
|
||
|
- WebAdmin serves Guide and links to related sections
|
||
|
|
||
|
* Web plugins
|
||
|
- mod_http_fileserver: new option directory_indices, and improve logging
|
||
|
|
||
|
|
||
|
Important Notes:
|
||
|
|
||
|
- ejabberd 2.1.0 requires Erlang R10B-9 or higher.
|
||
|
R12B-5 is the recommended version. Support for R13B is experimental.
|
||
|
|
||
|
|
||
|
Upgrading From ejabberd 1.x.x:
|
||
|
|
||
|
- Check the Release Notes of the intermediate versions for additional
|
||
|
information about database or configuration changes.
|
||
|
|
||
|
|
||
|
Upgrading From ejabberd 2.0.x:
|
||
|
|
||
|
- The database schemas have three changes since ejabberd 2.0.x.
|
||
|
Check the database creation SQL files and update your database.
|
||
|
1) New table roster_version to support roster versioning.
|
||
|
2) Six new tables for optional pubsub ODBC storage.
|
||
|
3) Some tables in the MySQL database have a new created_at column.
|
||
|
|
||
|
- As usual, it is recommended to backup the Mnesia spool directory and
|
||
|
your SQL database (if used) before upgrading ejabberd.
|
||
|
|
||
|
- Between ejabberd 2.0.0 and 2.0.5, mod_pubsub used "default" as the
|
||
|
default node plugin. But in 2.1.0 this is renamed to "hometree".
|
||
|
You have to edit your ejabberd config file and replace those names.
|
||
|
If you used ejabberd 2.0.5 or older, the database will be updated
|
||
|
automatically. But if you were using ejabberd from SVN, you must
|
||
|
manually run ejabberdctl with the command: rename_default_nodeplugin.
|
||
|
Running this command on already updated database does nothing.
|
||
|
|
||
|
- The listener options 'ip' and 'inet6' are not documented anymore
|
||
|
but they are supported and you can continue using them.
|
||
|
There is a new syntax to define IP address and IP version.
|
||
|
As usual, check the ejabberd Guide for more information.
|
||
|
|
||
|
- The log file sasl.log is now called erlang.log
|
||
|
|
||
|
- ejabberdctl commands now have _ characters instead of -.
|
||
|
For backwards compatibility, it is still supported -.
|
||
|
|
||
|
- mod_offline has a new option: access_max_user_messages.
|
||
|
The old option user_max_messages is no longer supported.
|
||
|
|
||
|
- If you upgrade from ejabberd trunk SVN, you must execute this:
|
||
|
$ ejabberdctl rename_default_nodeplugin
|
||
|
|
||
|
- Default installation directories changed a bit:
|
||
|
* The Mnesia spool files that were previously stored in
|
||
|
/var/lib/ejabberd/db/NODENAME/*
|
||
|
are now stored in
|
||
|
/var/lib/ejabberd/*
|
||
|
* The directories
|
||
|
/var/lib/ejabberd/ebin
|
||
|
/var/lib/ejabberd/priv
|
||
|
and their content is now installed as
|
||
|
/lib/ejabberd/ebin
|
||
|
/lib/ejabberd/priv
|
||
|
* There is a new directory with Erlang header files:
|
||
|
/lib/ejabberd/include
|
||
|
* There is a new directory for ejabberd documentation,
|
||
|
which includes the Admin Guide and the release notes::
|
||
|
/share/doc/ejabberd
|
||
|
|
||
|
- How to upgrade from previous version to ejabberd 2.1.0:
|
||
|
1. Stop the old instance of ejabberd.
|
||
|
2. Run 'make install' of new ejabberd 2.1.0 to create the new directories.
|
||
|
3. Copy the content of your old directory:
|
||
|
/var/lib/ejabberd/db/NODENAME/
|
||
|
to the new location:
|
||
|
/var/lib/ejabberd/
|
||
|
so you will have the files like this:
|
||
|
/var/lib/ejabberd/acl.DCD ...
|
||
|
4. You can backup the content of those directories and delete them:
|
||
|
/var/lib/ejabberd/ebin
|
||
|
/var/lib/ejabberd/priv
|
||
|
/var/lib/ejabberd/db
|
||
|
5. Now try to start your new ejabberd 2.1.0.
|
||
|
|
||
|
|
||
|
Bug reports
|
||
|
|
||
|
You can officially report bugs on ProcessOne support site:
|
||
|
http://support.process-one.net/
|