What's new in ejabberd 2.1.11
Jun 29, 2013
- HTTP service:
- Fix ejabberd_http:get_line
- Don't use binary:match to extract lines from binaries
- Parse and encode https header names like native http parser does
- Parse correctly https request split into multiple packets
- Properly handle HEAD request in mod_http_bind (EJAB-1538)
- New option default_host for handling requests with ambiguous Host (EJAB-1261)
- ODBC:
- New ODBC support for mod_announce
- New ODBC support for mod_blocking
- New ODBC support for mod_irc
- New ODBC support for mod_muc
- New ODBC support for mod_shared_roster
- New ODBC support for mod_vcard_xupdate
- Add ODBC exporting function for privacy table
- Work also with some unicode strings in PgSQL (EJAB-1490)
- Replace a single quote with double quotes in an ODBC escape
- SSL:
- Make sure that res is initialized in all cases
- Parse correctly https request split into multiple packets (EJAB-1537)
- Added missed tls:recv_data/2
- Don’t ignore Length parameter in tls:recv
- Avoid quadratic behavior in reading SSL data
- Dix http_bind webserver TLS fail on Chrome (EJAB-1530)
- Miscellanea:
- Assume we have only one CPU when an auto-detection fails (EJAB-1516)
- Auth: Relax digest-uri handling (EJAB-1529)
- Caps: Cache caps timestamp before the IQ-request is done
- IRC: Use of MUC password
- Private: misc errors cases fixes
- Pubsub: return user affiliation for a specified node (EJAB-1294)
- Shared Roster: Foreign items were not pushed (EJAB-1509)
- Shared Roster LDAP: user substitution in ldap_rfilter (EJAB-1555)
- Windows: Fix makefile rules for building DLLs
New in ejabberd 2.1.8 (Jun 7, 2011)
- Fix issue on PubSub preventing publication of items (EJAB-1457)
New in ejabberd 2.1.7 (Jun 7, 2011)
- Bug:
- [EJAB-680] - ejabberd accepts namespace-ill-formed XML
- [EJAB-1349] - clustering problem because of broken pg2 module
- [EJAB-1374] - Keep the order of stanzas when BOSH sends several
- [EJAB-1385] - Delayed response of a timeout call is reused for the next login attempt
- [EJAB-1387] - Compile and include ejabberd's sha_drv.c in Windows installers
- [EJAB-1399] - ejabberdctl does not escape output from ctlexec() to erl script
- [EJAB-1406] - Provide HTTPS URL in CAPTCHA form when listener has 'tls' option
- [EJAB-1416] - ejabberdctl needs space between FIREWALL_WINDOW and INET_DIST_INTERFACE
- [EJAB-1417] - mod_irc must send presence unavailable to the departing occupant
- [EJAB-1418] - captcha_host must have the port number to get protocol
- [EJAB-1420] - Crash when roster version not stored
- [EJAB-1428] - Restart an extauth script instance if it crashes
- [EJAB-1432] - MUC affiliation changes result in improper output to the members of the MUC
- [EJAB-1434] - Pubsub nodes max_items based on item persistence
- [EJAB-1437] - Error about undefined update_t/4 while compiling source code using mssql
- [EJAB-1442] - Escape user input in mod_privacy_odbc
- [EJAB-1445] - PubSub: Owner can only delete other publishers items
- [EJAB-1451] - Do not accept XML with undefined prefixes
- [EJAB-1456] - PEP last-item sent without Caps filtered-notifications
- Improvement:
- [EJAB-1264] - Support anonymous accounts in Shared Roster @all@ directive
- [EJAB-1379] - Handle Tigase's unexpected version=1.0
- [EJAB-1391] - Add support for '@online@' Shared Roster Group
- [EJAB-1398] - New route_iq/5 and register_iq_response_handler/5 accepting Timeout
- [EJAB-1404] - New DIST_USE_INTERFACE to restrict IP where erlang connections are listened
- [EJAB-1407] - New Indonesian translation
- [EJAB-1435] - mod_ping should default to using no_queue
- [EJAB-1446] - Add clear message to ejabberd log when ejabberd won't start due to module load error.
- [EJAB-1450] - Add chkconfig-compatible header to ejabberd.init.template
- New Feature:
- [EJAB-695] - Support for XEP-0191: Simple Communications Blocking
- [EJAB-1388] - New mod_pres_counter prevents flood of subscription requests
New in ejabberd 2.1.6 (Dec 14, 2010)
- BOSH: Fix rare loop, support vhosts, allow module restart
- Config: Default configuration allows registrations only from localhost
- Config: Support to change loglevel per module at runtime
- Erlang/OTP: Fix compatibility from R10B-9 to R14B01
- ODBC: Compatibility with PostgreSQL 9.0
- Privacy lists: Fix to allow block by group and subscription again
New in ejabberd 2.1.5 (Aug 4, 2010)
- Authenticatio:
- Extauth: Support parallel script running (EJAB-1280)
- mod_register: Return Registered element when account exists
- ejabberdctl:
- Fix print of command result that contains ~
- Fix problem when FIREWALL_WINDOW options for erl kernel were used
- Fix typo in update_list command (EJAB-1237)
- Some systems delete the lock dir; in such case don't use flock at all
- The command Update now returns meaningful message and exit-status (EJAB-1237)
- HTTP-Bind (BOSH):
- Don't say v1.2 in the Bind HTTP page
- New optional BOSH connection attribute process-delay (EJAB-1257)
- MUC:
- Document the mod_muc option captcha_protected
- Now admins are able to see private rooms in disco (EJAB-1269)
- Show some more room options in the log file
- ODBC:
- Correct handling of SQL boolean types (EJAB-1275)
- Discard too old queued requests (the caller has already got a timeout)
- Fixes wrong SQL escaping when --enable-full-xml is set
- Use ets insead of asking supervisor in ejabberd_odbc_sup:get_pids/1
- Pubsub, PEP and Caps:
- Enforce disco features results (EJAB-1033, EJAB-1228, EJAB-1238)
- Support all the hash functions required by Caps XEP-0115
- Requirements:
- Fixed support for Erlang R12; which doesn't support: true andalso ok
- Support OTP R14A by using public_key library instead of old ssl (EJAB-953)
- Requirement of OpenSSL increased from 0.9.6 to 0.9.8
- OpenSSL is now required, not optional
- Other:
- Don't ask for client certificate when using tls (EJAB-1267)
- Fix typo in --enable-transient_supervisors
- Fix privacy check when serving local Last (EJAB-1271)
- Inform client that SSL session caching is disabled
- New configure option: --enable-nif
- Use driver allocator in C files for reflecting memory in erlang:memory(system)
- Debug: New p1_prof compiled with: make debugtools=true
- Debug: Added functions to collect stats about queues, memory, reductions etc
- HTTP: Log error if request has ambiguous Host header (EJAB-1261)
- Logs: When logging s2s out connection attempt or success, log if TLS is used
- Shared Rosters: When account is deleted, delete also member of stored rosters
New in ejabberd 2.1.3 (Mar 13, 2010)
- New ejabberd_c2s option: max_fsm_queue
- ejabberdctl: Support concurrent connections with bound connection names
- Cross-domain HTTP-Bind support (EJAB-1168)
- Hibernate http-bind process after handling a request
New in ejabberd 2.1.0 (Nov 18, 2009)
- 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
New in ejabberd 1.1.2 (Sep 29, 2006)
- LDAP Improvements
- Major improvements have been made on the LDAP module. It is now more flexible and more robust.
- HTTP Polling Fixes
- The HTTP polling modules have been fixed and improved: the connections are closed properly and polled messages cannot be lost anymore.
- Roster Management Improvement
- Roster management improvements increase reliability, especially in cases where users are on different servers.
- Shared rosters are more reliable.
- Improved Robustness
- It is now possible to limit the number of opened connections for a single user.
- Relational databases
- Database support: Microsoft SQL Server is now officially supported in ODBC mode.
- Publish-Subscribe Improvement
- Restricting node creation with a dedicated ACL rule is now possible.
- Localization
- A Czech translation has been added.
- Translations have been updated.
- Binary Installer
- New binary installer for Windows including all requirements.
- Improved installers for Linux and MacOSX (PowerPC).
- XMPP Compliancy
- Some protocol compliance fix have been added, after the Portland XMPP Interop Meeting in July.
- Miscelanous
- MUC have been improved (logging rendering).
- The command line tool ejabberdctl has been improved.
- The build chain has been improved, including MacOSX support.
- The documentation has been improved and updated to describe the new features.
- Bugfixes
- Anonymous login bugfixes.
- Please refer to the ChangeLog file supplied with this release regarding all improvements in ejabberd.