Release Notes - ejabberd development - Version ejabberd 2.1.0 - HTML format

Bug

  • [EJAB-71] - Presence is not sent for users in shared roster when a newly registered user logs in
  • [EJAB-255] - Privacy List: deny presence-out all + send presence to: presence is sent
  • [EJAB-300] - Privacy rules can't stop subscription requests
  • [EJAB-304] - ejabberd doesn't correctly unquote SASL responses
  • [EJAB-306] - Support Reasons for all affiliation and role changes
  • [EJAB-331] - LDAP function to get the number of registered users is too slow
  • [EJAB-333] - http_base_64:decode is faster than jlib:decode_base64
  • [EJAB-389] - Impossible to bind the same port to multiple interfaces
  • [EJAB-394] - No error log if cannot bind to server port
  • [EJAB-407] - Unable to subscribe users who are a member of a shared group
  • [EJAB-432] - pubsub retrieve-subscriptions needs filtered output (do nt display subscription=none)
  • [EJAB-438] - Don't hardcode gcc specific options: -fpic and -shared
  • [EJAB-444] - Server roster push (when removing subscription) contains my JID in "from"
  • [EJAB-447] - Fix C compilation warnings
  • [EJAB-453] - Not subscribed contacts shouldn't be allowed to retrieve PEP node
  • [EJAB-474] - mod_caps: cache also negative responses, so buggy clients are not continually asked
  • [EJAB-497] - mod_muc_log XHTML compliance
  • [EJAB-498] - ejabberd must not send presence probes to oneself
  • [EJAB-501] - Support for multiline strings in Web Admin modules options
  • [EJAB-519] - If I'm globally invisible (according to XEP-0126), I don't receive PEP notifications
  • [EJAB-529] - Windows service does not read ejabberdctl.cfg
  • [EJAB-535] - Fix MsSql 2005 database script
  • [EJAB-537] - Not acceptable attribute from in roster push stanza
  • [EJAB-540] - Long timeout when reconnecting s2s after a remote server crash
  • [EJAB-543] - nmake doesn't accept a dot in the wildcard macro
  • [EJAB-549] - Internal auth, with anonymous possible, then roster is deleted
  • [EJAB-550] - Incorrect xmlns on Requesting All Items
  • [EJAB-555] - Rewrite io:format calls to loglevel macros
  • [EJAB-564] - add condition inclusion of pep in disco identity
  • [EJAB-569] - SASL digest authentication does not check digest-uri
  • [EJAB-571] - mod_http_bind displays error message in log while started with several hosts
  • [EJAB-573] - epam binary is not loaded in ejabberd from installer, cause loaded from priv/lib
  • [EJAB-578] - mod_caps should also cache negative responses
  • [EJAB-580] - pubsub subscription result is not wrapped in pubsub tag
  • [EJAB-589] - ejabberdctl fails to connect to running ejabberd with 'nodedown' error when ejabberd is running as Windows service
  • [EJAB-592] - Makefile.in ignores values passed from configure
  • [EJAB-595] - Incorrect error message when user sends forbidden private message
  • [EJAB-601] - Stanzas get lost after component dis- and reconnects
  • [EJAB-603] - Crash under some conditions when no privacy list is set
  • [EJAB-608] - mod_caps can get overloaded with buggy client
  • [EJAB-610] - mod_last doesn't report an uptime larger than ~50 days
  • [EJAB-611] - Unable to add shared roster groups using web-interface through HTTPS
  • [EJAB-616] - error message on sasl.log is not flattened
  • [EJAB-617] - Improve confusing log message in s2s connection: wait_for_validation connect timeout
  • [EJAB-618] - XEP-0115: Discovery queries have no node
  • [EJAB-622] - Cannot use colon in password when logging into Web Admin
  • [EJAB-628] - Use httpd_util:to_lower when not compiling with Erlang R12
  • [EJAB-632] - mod_proxy65 must send valid SOCKS5 reply
  • [EJAB-633] - Document ejabberdctl status code
  • [EJAB-649] - Solaris Makefile install: should use ginstall
  • [EJAB-657] - ejabberd vsn is not properly set everywhere
  • [EJAB-660] - Document how to get error message when ejabberd crash dumps at start
  • [EJAB-663] - User1 shouldn't be allowed to publish nodes in user2's PEP
  • [EJAB-668] - Pubsub node being both a collection and a leaf
  • [EJAB-669] - Startup slow with many pubsub nodes
  • [EJAB-672] - Cannot explicitely create a collection node but it becomes one when a subnode is created
  • [EJAB-675] - With pubsub#send_last_published_item option on a node, this is not the last published which is indeed sent!
  • [EJAB-676] - ejabberctl doesn't use the erl found by the configure script
  • [EJAB-678] - Web Admin and Adhoc admin: dump only persistent tables
  • [EJAB-684] - remove_user hook does not remove PubSub subscriptions of that user
  • [EJAB-687] - Server admin cannot add himself to room owner list
  • [EJAB-692] - When a registration is blocked due to IP limitation, return description in error stanza
  • [EJAB-698] - PEP : sending last published item does not work for items that come from unavailable users nodes
  • [EJAB-700] - When subscribing to a pubsub node, we receives ALL items in notification payload, not only the last one.
  • [EJAB-701] - Getting subscriptions does not work for subscriptions made using a full JID
  • [EJAB-703] - Pubsub node update should not notify removal
  • [EJAB-706] - When ejabberd is kindly stopped, don't forget modules configuration
  • [EJAB-707] - PEP events are delayed when s2s is laggy
  • [EJAB-709] - Detect correct size of HTTP packet
  • [EJAB-710] - Detect correctly MSSQL and ODBC configuration
  • [EJAB-712] - Asking subscriptions on a specific node gives all subscriptions, not just the entity subscriptions
  • [EJAB-713] - Pubsub: error message sent while attempting to retrieve suscriptions options form is not compliant with the XEP.
  • [EJAB-717] - Components connection: require valid Jabber component destination
  • [EJAB-720] - Privacy lists of a user are not removed when his account is deleted
  • [EJAB-721] - Ensure id attribute in roster push is unique
  • [EJAB-723] - Change password using mod_register always returns success regardless of real result
  • [EJAB-724] - handle wrong order of packets in http-bind module
  • [EJAB-730] - shared rosters @all@ are not upgrade when users are connected
  • [EJAB-731] - Newly created users doesn't receive presence from shared roster @all@ contacts
  • [EJAB-732] - Doesn't receive presence from some accounts which are in shared roster @all@
  • [EJAB-756] - Wrong type for two adhoc commands replies
  • [EJAB-758] - "Error running Post Install Script" with ejabberd-2.0.2_2-windows-installer.exe
  • [EJAB-762] - pubsub configuration form does not ignore unknown fields
  • [EJAB-771] - When requesting page of nonexistent user, show 'Not Found' page
  • [EJAB-776] - PubSub: unsubscribing user when affiliation=none does not remove record from pubsub_state table
  • [EJAB-777] - Errors in ejabberd.cfg are not reported in ejabberd.log, only in sasl.log
  • [EJAB-779] - Cannot retrieve pubsub items in own node configured with whitelist access model.
  • [EJAB-786] - URL path should be first tokenized by / and then decoded
  • [EJAB-787] - zlib feature cannot be disabled in configure script
  • [EJAB-792] - Include condition in http-bind terminate body when service stops
  • [EJAB-793] - pubsub#send_last_published_item do not retrieve the last published item when using clustered table
  • [EJAB-794] - When account is removed, push removal of roster item if shared roster @all@ exists
  • [EJAB-798] - PubSub: node authorization does not work
  • [EJAB-804] - Improve MUC traffic regulation management
  • [EJAB-812] - From attribute is not enforced on client stanzas
  • [EJAB-817] - Fix update pubsub tables from ejabberd 1.x to 2.x
  • [EJAB-818] - Requesting items on a node which exists, but empty returns an error
  • [EJAB-823] - Incorrect implementation of Pubsub payload requirements
  • [EJAB-824] - PubSub: send_items does not retreive items in publish order
  • [EJAB-825] - regression: can not see PEP on another domains
  • [EJAB-827] - Notification of retracted item does not take into account the "presence-based-delivery" node parameter
  • [EJAB-832] - "ejabberdctl load" does not work with big dumps
  • [EJAB-836] - When the PubSub node access model is "open", any entity (whether or not it is subscribed) should be allowed to retrieve items
  • [EJAB-839] - pubsub_state records left in mnesia after unsubscribe with no affiliation
  • [EJAB-840] - Anyone can unsubscribe an owner from a pubsub node
  • [EJAB-841] - Presence-based delivery always fails for s2s users
  • [EJAB-844] - horrible spelling error in polish translation (pl.po)
  • [EJAB-847] - Simplified Chinese translation mistake of the word "cluster" in installer
  • [EJAB-848] - Privacy list items must be processed in the specified order
  • [EJAB-850] - Prevent XSS in MUC logs by linkifying only a few known protocols
  • [EJAB-860] - DNS SRV lookup fails on Windows
  • [EJAB-863] - login_anon doesn't work with SASL digest authentication
  • [EJAB-867] - Owner of a password protected room must provide the password, like other participants
  • [EJAB-869] - Shared roster groups can cause authorization request on every login
  • [EJAB-871] - PubSub retract policy should obey pubsub#publish_model
  • [EJAB-873] - Non-subscriber can fetch items from Authorize node
  • [EJAB-877] - S2S connection with STARTTLS fails to Gtalk and recent Openfire
  • [EJAB-880] - Unusable connection to encrypted WebAdmin after timeout
  • [EJAB-882] - ODBC and anonymous auth with broken ODBC, users can login and rosters are deleted
  • [EJAB-892] - Safari doesn't like mod_http_fileserver's "Content-type" header
  • [EJAB-902] - Missing stream:error in the returned remote-stream-error stanza
  • [EJAB-905] - Announce PubSub features in example.net only if PEP is enabled
  • [EJAB-909] - PubSub publishing : If the publish request did not include an ItemID, the IQ-result SHOULD include an empty <item/> element that specifies the ItemID of the published item.
  • [EJAB-912] - SASL Anonymous httpbind connections not stored or purged
  • [EJAB-913] - Pubsub subscriptions remain after anonymous user removed
  • [EJAB-914] - ejabberdctl reports wrong number of total registered users with postgres
  • [EJAB-916] - Support in API to add @all@ as member of a group
  • [EJAB-919] - ejabberd's ram_file_io_server makes ejabberd_loglevel to not run with R13B
  • [EJAB-920] - Erlang R13B compilation: Warning: behaviour X undefined
  • [EJAB-922] - Migrate type-check calls to is_type
  • [EJAB-923] - Publishing items with the same id counts towards max_items limits
  • [EJAB-927] - Problem parsing win32 dns sometimes
  • [EJAB-931] - mod_register_web change password: POST request is processed twice
  • [EJAB-937] - Entity subscriptions to virtual nodes cannot be retrieved
  • [EJAB-952] - Fix retrieval of pending subscriptions
  • [EJAB-956] - ejabberdctl and erl scripts use tr incorrectly
  • [EJAB-963] - Fix some bugs in XEP-0248 support
  • [EJAB-966] - mod_http crash on some possibly malform http requests
  • [EJAB-976] - ?NLIST_CONFIG_FIELD unsafe when option not populated with a list
  • [EJAB-977] - Fix set-subscriptions to work with multi-subscribe
  • [EJAB-979] - Pubsub subscriptions confusing with PEP subscriptions
  • [EJAB-980] - Fix updating pending subscriptions
  • [EJAB-987] - CLONE -"Error running Post Install Script" with ejabberd-2.0.2_2-windows-installer.exe
  • [EJAB-988] - small typo in src/ejabberd.cfg.example
  • [EJAB-990] - cp command preuninstall.cmd
  • [EJAB-995] - Notification messages of Pubsub node configuration modifications are not well formed (<configuration/> element missing)
  • [EJAB-1003] - dash support for ejabberdctl
  • [EJAB-1011] - Don't allow in room configuration to enable password protection with empty password
  • [EJAB-1013] - impossible to remove ejabberd
  • [EJAB-1018] - Post Install fails, admin not created
  • [EJAB-1025] - PubSub: owner changing subscription does not make subscriber being notified
  • [EJAB-1026] - Prevent MUC room misappropriation
  • [EJAB-1036] - One missing pubsub_subscription breaks all deliveries from that node.
  • [EJAB-1039] - ejabberdctl in installer fails to detect correct path if 'which' unavailable
  • [EJAB-1054] - caps locked in waiting state
  • [EJAB-1055] - PubSub: last published items to be sent only to resource that just connected
  • [EJAB-1059] - Use max_items_node from pubsub configuration in pep
  • [EJAB-1060] - Regression fix for authorize node subscription.
  • [EJAB-1061] - Default pubsub messages to "headline" if nothing is configured
  • [EJAB-1070] - Presence information not sent for users in shared rosters
  • [EJAB-1071] - "sensible" != "sensitive"
  • [EJAB-1075] - Body tag not properly closed in HTTP-Bind
  • [EJAB-1085] - S2S Out connections fail in ejabberd 2.1.0-rc2 when using Erlang/OTP R12 or older
  • [EJAB-1087] - Stringprep Bidi checking doesn't reject strings with RandALCat and LCat characters
  • [EJAB-1088] - Fix some disco bugs in mod_pubsub
  • [EJAB-1089] - Fix bugs in nodetree_dag
  • [EJAB-1090] - Send authorization messages outside of get-pending transaction.
  • [EJAB-1094] - Fix disco on root node, add commands to disco.
  • [EJAB-1108] - mod_pubsub_odbc creates error

Improvement

  • [EJAB-7] - Backup system improvements
  • [EJAB-109] - LDAPS support
  • [EJAB-135] - HTTP-Poll: turn session timeout into a config file parameter
  • [EJAB-160] - Better log message when config file is not found
  • [EJAB-179] - LDAP filter optimisation: Add the ability to filter user in ejabberd and not LDAP
  • [EJAB-262] - Deliver messages when first presence is Invisible
  • [EJAB-301] - More verbose error reporting for xml:element_to_string
  • [EJAB-303] - ejabberd should only listen to port when actually ready to serve requests
  • [EJAB-339] - Specify port of IRC remote server
  • [EJAB-376] - Add timestamp to the database schemas
  • [EJAB-388] - Allow to specify IP address in string format in the Listen section
  • [EJAB-473] - Lines in command line help of length 80, and text formatting
  • [EJAB-512] - HTTP-Bind: allow configuration of max_inactivity timeout
  • [EJAB-515] - Support for decline of invitation to MUC room
  • [EJAB-533] - Config file management mix file reading and sanity check
  • [EJAB-538] - Privacy rules storage in MySQL
  • [EJAB-545] - Allow parametrizable watchdog threshold
  • [EJAB-546] - Include Last-Modified HTTP header in responses to allow caching
  • [EJAB-560] - Provide Host, Port, Headers and Transfer Protocol in HTTP requests
  • [EJAB-561] - Convert mod_http_fileserver to gen_server for proper vhosts support
  • [EJAB-562] - Make some Input areas multiline: options of listening ports and modules
  • [EJAB-565] - API: Reopen log command should be based on a hook
  • [EJAB-566] - API: Add s2s connect hook
  • [EJAB-572] - Clarify the explanation about the admin user name
  • [EJAB-581] - Faster reconnection to LDAP servers
  • [EJAB-582] - Improve LDAP logging
  • [EJAB-583] - Compile ELDAPv3.erl during the first Makefile pass
  • [EJAB-586] - Only try to install epam if pam was enabled in configure script
  • [EJAB-596] - MUC log files options: plaintext format; filename with only room name
  • [EJAB-602] - make LDAP authent result differentiate failed auth and unavailable auth service
  • [EJAB-613] - Read node type from the data form
  • [EJAB-619] - Document possible default MUC room options
  • [EJAB-624] - Prevent unvoiced occupants from changing nick
  • [EJAB-627] - Extauth responses: log strange responses and add timeout
  • [EJAB-634] - API: user_send_packet and user_receive_packet are not symetric
  • [EJAB-635] - Add s2s_send_packet and s2s_receive_packet hooks
  • [EJAB-651] - Permanent reference URL for sections
  • [EJAB-655] - make Pubsub x-data configuration form handles list value
  • [EJAB-659] - make jlib:parse_xdata_values able to handles <option>
  • [EJAB-662] - Support PUT and DELETE methods in ejabberd_http
  • [EJAB-665] - Option to define s2s outgoing behaviour: IPv4, IPv6 and timeout
  • [EJAB-667] - leading, trailing, and consecutive slashes stripped from pubsub node names
  • [EJAB-670] - Allow to store room description
  • [EJAB-673] - Support of collection node subscription options
  • [EJAB-677] - Complain if mod_caps disabled and mod_pubsub has PEP plugin enabled
  • [EJAB-711] - sasl.log rotation on "reopen-log" command
  • [EJAB-734] - Improve Web Admin navigation menu for vhosts and nodes
  • [EJAB-737] - Check option of the nodetree instead of checking configuration
  • [EJAB-746] - Use send timeout to avoid locking on gen_tcp:send
  • [EJAB-747] - Run new hook webadmin_user_parse_query when POST in web admin user page
  • [EJAB-752] - When max_stanza_size is exceed, provide meaningful error stanza
  • [EJAB-753] - Check certfiles are readable on server start and listener start
  • [EJAB-755] - There is no init.d script when installing from the source
  • [EJAB-767] - When a member is added/removed to group, send roster upgrade to group members
  • [EJAB-778] - Include recognized headers in request_headers as atoms, and others as strings
  • [EJAB-781] - tls v1 client hello
  • [EJAB-790] - When account is deleted, cancel presence subscription for all roster items
  • [EJAB-799] - Send authorization update event (XEP-0060, 8.6)
  • [EJAB-805] - ejabberd frontend / backend architecture optimisation
  • [EJAB-813] - add nodetree filtering/authorization
  • [EJAB-819] - PubSub: Cannot configure max_items on nodes over 20?
  • [EJAB-826] - mod_caps must handle correctly external contacts with several resources
  • [EJAB-828] - PubSub: implicit item deletion is not notified when deleting node
  • [EJAB-833] - Do not ask certificate for client (c2s)
  • [EJAB-851] - Only run roster_get_jid_info if privacy list contains subscription or group item
  • [EJAB-868] - Report error at startup if a listener module isn't available
  • [EJAB-875] - mod_caps: remove useless caps tables entries
  • [EJAB-885] - outgoing_s2s_port option is undocumented
  • [EJAB-891] - Allow more environment variable overrides in ejabberdctl
  • [EJAB-899] - Limit number of characters in Room ID, Name and Description
  • [EJAB-908] - Define the Windows service OnFail=restart
  • [EJAB-925] - Support translation files for additional projects
  • [EJAB-926] - Drop c2s connection if socket send times out
  • [EJAB-933] - disco#info feature http://jabber.org/protocol/pubsub#purge-nodes feature-not-implemented
  • [EJAB-936] - BOSH module optimization and clean-up
  • [EJAB-951] - Add option to restrict max offline messages by Access and ACL
  • [EJAB-955] - Implement pubsub#get-pending Ad Hoc Command
  • [EJAB-972] - Update Ingoing s2s connections inner state to hold domain name
  • [EJAB-975] - Allow content types to be configured in ejabberd.cfg
  • [EJAB-981] - Internal auth method should store number of accounts for faster queries
  • [EJAB-986] - HTML room logs: fix formatting of spaces; log config when disabling logging; display occupants
  • [EJAB-989] - Windows license Install
  • [EJAB-994] - Better DNS resolution error retry
  • [EJAB-1001] - need get_collection_subscriptions optimization
  • [EJAB-1004] - Ability to get current log level
  • [EJAB-1040] - Customize ejabberd installer icon
  • [EJAB-1047] - PubSub: rename pep_sendlast_offline option
  • [EJAB-1052] - Add some additional information in the installer
  • [EJAB-1056] - Autodetect compilation parameters for Mac OS X Snow Leopard
  • [EJAB-1057] - Pack presences stored in C2S processes to reduce memory consumption
  • [EJAB-1063] - TCP backlog is set to a very low value
  • [EJAB-1064] - Unnecessary call to xml:crypt/1
  • [EJAB-1068] - Start mnesia as a permanent application
  • [EJAB-1072] - Consistency, wording and spacing corrections for Polish messages.

New Feature

  • [EJAB-173] - XEP 0199: XMPP ping
  • [EJAB-234] - Add XEP82 Date Time, update XEP202 Entity Time and XEP203 Delayed Delivery
  • [EJAB-235] - Add support for XEP-0157: Contact Addresses for XMPP Services
  • [EJAB-302] - Ad-hoc commands to join IRC channel, set nickname and encoding
  • [EJAB-313] - Categorization and sorting of commands in ejabberd_ctl help
  • [EJAB-319] - Connection method of clients in Web admin
  • [EJAB-402] - Allow to execute ejabberd with a dedicated system user
  • [EJAB-480] - Cross link of ejabberd users
  • [EJAB-499] - Support Zlib compression after STARTTLS encryption
  • [EJAB-593] - Config file: allow to include additional files; definition and use of macros
  • [EJAB-625] - Client blacklist support by IP
  • [EJAB-645] - Allow admins to send messages to rooms
  • [EJAB-648] - Use Gettext PO for translators, export to ejabberd MSG
  • [EJAB-694] - ejabberd commands: separate command definition and calling interface
  • [EJAB-729] - Export function to create MUC room
  • [EJAB-780] - PubSub: implement whitelist authorize and roster acces model
  • [EJAB-782] - PubSub: Allow Multiple Subscriptions
  • [EJAB-807] - Implementation for Result Set Management (XEP-0059) for mod_muc
  • [EJAB-815] - Support XEP-0248: PubSub Collection Nodes
  • [EJAB-829] - Distributed Hooks
  • [EJAB-837] - WebAdmin serves Guide and links to related sections
  • [EJAB-845] - PubSub: Subscription option support
  • [EJAB-876] - Add subscription option support for collection nodes
  • [EJAB-895] - XEP-0158: CAPTCHA protection for Multi-User Chat
  • [EJAB-910] - Configurable restriction of who can execute what commands and arguments
  • [EJAB-932] - mod_http_fileserver: new option directory_indices, and improve logging
  • [EJAB-961] - Support XEP-0085 Chat State Notifications
  • [EJAB-964] - Support XEP-0237 Roster Versioning
  • [EJAB-974] - ejabberd module for xmpp ping support
  • [EJAB-993] - Support XEP-0227: Portable Import/Export Format for XMPP-IM Servers
  • [EJAB-1008] - Support STUN (RFC 5389)
  • [EJAB-1023] - Write PID file
  • [EJAB-1044] - Add node config option choose message type
  • [EJAB-1048] - PEP / Pubsub: Support for delayed delivery XEP

Task

  • [EJAB-159] - SSL code remove from ejabberd in favor of TLS
  • [EJAB-554] - Update the screenshots of the ejabberd Web Admin in the ejabberd Guide
  • [EJAB-575] - Document s2s_default_policy and s2s_host in the Guide
  • [EJAB-576] - Document service_check_from in the Guide
  • [EJAB-614] - Registration limitation
  • [EJAB-631] - mod_muc_log XMPP URI supports the updated RFC 5122
  • [EJAB-653] - Add to registration_timeout to ejabberd.cfg.example
  • [EJAB-686] - Spool, config and log dirs: writtable by owner, readable by group, nothing by others
  • [EJAB-696] - Document in ejabberd 2.1.0 Release Notes the new ejabberd path locations
  • [EJAB-704] - Include example PAM configuration file: ejabberd.pam
  • [EJAB-708] - Update Process-one name to ProcessOne
  • [EJAB-783] - Rename Erlang/OTP SASL log file from sasl.log to erlang.log
  • [EJAB-835] - PubSub: make default node naming convention XEP compatible and document usage of hierarchy
  • [EJAB-842] - Update copyright dates to 2009
  • [EJAB-904] - Remove support of Publish part of XEP-0030 in mod_disco
  • [EJAB-940] - Implement nested transactions in ejabberd_odbc
  • [EJAB-998] - Improve the Guide to describe the option syntax, not only the name
  • [EJAB-1007] - Include exmpp in ejabberd 2.1.x installers for PIEFXIS support
  • [EJAB-1041] - Document more ejabberd commands in the Guide
  • [EJAB-1078] - Release Notes mistake (database schemas)

Edit/Copy Release Notes

The text area below allows the project release notes to be edited and copied to another document.