ejabberd Changelog

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.