# Openfire Changelog

## 3.4.4 -- January 17, 2008

### Openfire Bug Fixes

- [JM-1230] - Current LDAP settings now being kept when editing config from admin interface.
- [JM-1231] - Openfire install directories, log directories, etc are no longer world readable.
- [JM-1232] - LDAP vCard database storage fixed to work properly with Active Directory and others. !!NOTE!! API Changes for providers were required. See important notes below.
- [JM-1233] - RPM uninstall no longer fails if Openfire not currently running.
- [JM-1240] - Can now delete an avatar when using LDAP.
- [JM-1242] - Jetty upgraded to fix announced security issue (http://www.kb.cert.org/vuls/id/553235)

### Important Notes

The VCardProvider interface/API was updated to make vCard handling more robust. The change involved changing createVCard and updateVCard to return the vCard (after the provider has possibly altered it) instead of having no return at all (void). If you are not making any modifications to the vCard, you will want to adjust your provider to simply return what was passed into it. Otherwise, return your modified vCard. This will allow the properly adjusted vCard to be cached.

### Openfire Enterprise

- No changes

### Openfire Connection Manager Module

- No changes

## 3.4.3 -- December 27, 2007

### Openfire New Features

- [JM-460] - Avatars may now be updated when using LDAP. (60 votes)
- [JM-1216] - Improved login performance by reducing PEP work.
- [JM-1210] - Optimized general performance when doing JID operations.
- [JM-1215] - Improved http binding throughput by setting a maximum number of http worker threads.
- [JM-1205] - Optimized memory consumption when using http-binding.
- [JM-1208] - New database connections are opened when no database connections were found.
- [JM-765] - Created Ubuntu/Debian installer package. (19 votes)
- [JM-1161] - Created Solaris installer package.
- [JM-1222] - Updated JavaMail library to latests version.

### Openfire Bug Fixes

- [JM-1204] - Certificate Signing Requests were not generated when issuer name matched xmpp domain.
- [JM-1206] - Fixed encrypted connections for server-2-server (broken in 3.4.2).
- [JM-1207] - SASL EXTERNAL for server-2-server was not accepting wildcard certificates.
- [JM-1211] - Fixed Openfire RPM to properly handle service removal and also shutdowns/startups. (1 vote)
- [JM-1201] - Fixed DMG installer to not overwrite config files.

### Openfire Enterprise

- [ENT-107] - Fixed table reference when deleting chat from fastpath.
- [ENT-138] - SparkWeb - Added HTTPS and HTTP support to SparkWeb. (2 votes)
- [ENT-288] - SparkWeb - SparkWeb can now get the crossdomain.xml file from the http binding port.
- [ENT-325] - SparkWeb - Added support for room invitations.
- [ENT-336] - SparkWeb - Login window can now be skipped when using programmatic launch.
- [ENT-333] - SparkWeb - Autocomplete domain when only only username was entered when adding a contact.
- [ENT-261] - SparkWeb - Tab width was too small.
- [ENT-296] - SparkWeb - Loading large contact lists was too slow.
- [ENT-301] - SparkWeb - User search window is no longer transparent.
- [ENT-318] - SparkWeb - Fixed message counter that was incremented with local messages.
- [ENT-322] - SparkWeb - Some users were displayed in the online and offline group.
- [ENT-323] - SparkWeb - Avatars were not in a proper order in the roster.
- [ENT-324] - SparkWeb - Avatars did not always appear.
- [ENT-328] - SparkWeb - Fixed adding a contact from the user seach window.
- [ENT-329] - SparkWeb - Contacts with pending subscription were not listed in the roster correctly.
- [ENT-341] - SparkWeb - Pending contacts that were already in your list when you log in were not placed correctly.
- [ENT-343] - SparkWeb - Fixed error when adding bookmarks from the Conferences tab.

### Openfire Connection Manager Module

- No changes

## 3.4.2 -- December 6, 2007

### Openfire New Features

- [JM-988] - Certificates created and signed by CA can be imported from the admin console. (5 votes)
- [JM-1132] - Added support for XEP-0115: Entity Capabilities.
- [JM-1197] - Added "Notification Filtering" support to PEP based on entity capabilities.
- [JM-1181] - Allowed to retrieve the list of roles a given user session has in all rooms.
- [JM-1196] - File crossdomain.xml is also served from http binding port.
- [JM-1189] - Updated bouncycastle library to latest version.
- [JM-1200] - Updated MINA library to latest version. Improved outgoing traffic throughput!

### Openfire Bug Fixes

- [JM-1140] - Certificate Signing Requests did not include issuer metatata. (2 votes)
- [JM-1180] - Username with spaces could not be added to groups.
- [JM-1184] - Some unavailable presence were not processed and users remain in the rooms.
- [JM-1185] - Fixed error in bin/extra/openfired script.
- [JM-1177] - Fixed exception in PEP when using instantFeeds plugin.
- [JM-1179] - Non-relevant errors were printed when going to the clustering page and clustering was not available.
- [JM-1202] - MySQL driver was downgraded to version 5.0.8.

### Openfire Enterprise

- [ENT-262] - Clustering was not allowing other plugins to run commands on other nodes.
- [ENT-274] - Plugins were not able to create caches and use them in the cluster.
- [ENT-289] - Updated Coherence to latest version.
- [ENT-271] - Fixed search of archived chats when no end date was specified.
- [ENT-260] - Changed data type used in bytes column for SQL Server.
- [ENT-244] - Added MultiUserChat support to Sparkweb.
- [ENT-273] - Added User Search (XEP-0055) functionality to SparkWeb.
- [ENT-212] - Errors messages no longer appear as modal dialogs in SparkWeb.
- Fixed several roster management issues of SparkWeb.
- Fixed several issues in the chat window of SparkWeb.

### Openfire Connection Manager Module

- [JM-1189] - Updated bouncycastle library to latest version.
- [JM-1200] - Updated MINA library to latest version. Improved outgoing traffic throughput!

## 3.4.1 -- November 1, 2007

### Openfire New Features

- [JM-1172] - RSS feed can now be disabled from the admin console.

### Openfire Bug Fixes

- [JM-1171] - New installations were not able to log into the admin console.

### Openfire Enterprise

- No changes

### Openfire Connection Manager Module

- No changes

## 3.4.0 -- October 31, 2007

### Openfire New Features

- [JM-1122] - Added support for XEP-0163: Personal Eventing via Pubsub. Thanks to Armando Jagucki.
- [JM-65] - Added roster management from the admin console. (53 votes)
- [JM-773] - Photos can now be retrieved from LDAP for vcards. (42 votes)
- [JM-635] - Plugins can now be uploaded from the admin console. (3 votes)
- [JM-537] - Added crossdomain.xml support for Flash. (7 votes)
- [JM-1147] - Added support for XEP-0059: Result Set Management.
- [JM-1124] - Improved performance of SSL HTTP binding.
- [JM-1128] - Added RSS feed to the admin console to read igniterealtime news.
- [JM-1046] - Added support for privacy list event listener.
- [JM-1121] - Events are now triggered when an available or unavailable presence is received for remote users.
- [JM-1061] - Events are now triggered after trying to load/unload plugins.
- [JM-1118] - Allowed to add new identities to be included in disco#info replies.
- [JM-1119] - Allowed to add new items to disco#item replies sent to bare JIDs.
- [JM-1120] - Modified PresenceEventListener to include presence subscription events.
- [JM-1151] - IQResultListeners are now alerted when no answer was received after a while.
- [JM-1159] - Updated MySQL driver to latest version.
- [JM-1089] - Updated bouncycastle library to latest version.
- [JM-1142] - Updated Base64 implementation.
- [JM-1158] - Updated jTDS to latest version.

### Openfire Bug Fixes

- [JM-1150] - Messages sent to bare JID were being sent to session with oldest activity rather than latest activity.
- [JM-1075] - Message sent to unavailable full JID of existing user was not routed to the bare JID.
- [JM-1145] - SASL authentication was sometimes ignoring initial tokens.
- [JM-1084] - Users in another domain could set the vCard of an Openfire user.
- [JM-1066] - Client idle timeout was considering incoming and outgoing traffic. (3 votes)
- [JM-1144] - Messages with body and subject were processed as attempts to change the room subject.
- [JM-1153] - Column in mucConversationLog was using a reserved work in Blackfish SQL.
- [JM-1082] - Fixed NPE in MUCRoomImpl.
- [JM-1058] - Renamed many column names to be comparible with Firebird SQL and Blackfish SQL. (1 vote)
- [JM-1169] - Big vcards were being truncated in mysql.
- [JM-1154] - End of stream was not being sent to client when closing connections from the server.
- [JM-1080] - Fixed custom database groups integration bug.
- [JM-1131] - Multiple consecutive spaces in a contact's group name were replaced with a single space.
- [JM-1050] - Proxy transfer streams are now closed more reliably.
- [JM-1052] - Media proxy could fail when using SRV record.
- [JM-1059] - Clients could hang when trying to use stream compression.
- [JM-1085] - Active sessions are now closed and a stream error is returned when cancelling a user account.
- [JM-1091] - Connected but not available sessions appeared as online in the session summary page.
- [JM-1051] - PluginManager can now return the JAR/WAR file that created a plugin.
- [JM-1055] - Plugins are now initialized using plugin class loader.
- [JM-1056] - Port listeners are started once plugins have been loaded.
- [JM-1152] - Plugins failed to load if there was a newline in the class name.
- [JM-1092] - Plugins that failed to be unloaded were reloaded.
- [JM-1095] - Fixed session counter when closing session that never authenticated.
- [JM-1070] - Counter of sent packets from the server to the client was always zero.
- [JM-1096] - HTTP binding could allow packets to be sent on behalf of other users.
- [JM-1097] - A not-authorized error is now returned when user tries to bind a resource before authenticating.
- [JM-1137] - JIDs were incorrectly compared.
- [JM-845] - Password no longer changes randomly in "Email Settings".
- [JM-1113] - XML properties could be set which contain XML entities.
- [JM-1123] - Presences sent between components are now routed.
- [JM-1129] - Retrieving room history was not working in Oracle.
- [JM-1069] - Modules were cleaned up before stopping plugins.
- [JM-1143] - Fixed typo in Kuala Lumpur time zone.
- [JM-1168] - Deleting a user in the admin console now boots them offline.

### Openfire Enterprise

- [ENT-43] - Added clustering support. (38 votes)
- Added web client named SparkWeb.
- [ENT-205] - Table entConParticipant failed to be created in MySQL when using charset UTF-8.
- [ENT-234] - Conversation transcript failed to export to PDF.
- [ENT-199] - Fixed typo in statistic sever_sessions.

### Openfire Connection Manager Module

- [JM-1066] - Client idle timeout was considering incoming and outgoing traffic. (3 votes)

## 3.3.3 -- September 20, 2007

### Openfire New Features

- [JM-1054] - Updated MINA library to latest version. Nice optimizations and fixes.
- [JM-1126] - Added debug information when quering LDAP for groups of a given user.

### Openfire Bug Fixes

- [JM-1127] - Parsing XML containing multibyte characters could add null characters to the resulting stanza. Thanks to Tim.
- [JM-1125] - An IQ of type error is now returned instead of closing the connection when an internal error occurs while processing an IQ packet.

### Openfire Enterprise

- [ENT-135] - Added SparkWeb Flash Beta.
- [ENT-129] - Round robin algorithm is no longer used when transfering/invitating a single user.
- [ENT-131] - Fixed "Agent never joined" issue with Webchat.
- [ENT-133] - Removing Demo workgroup and user was causing other workgroups to fail.
- [ENT-136] - Workgroup queues page was showing wrong number of agents logged in.
- [ENT-65] - An empty list was being shown when no workgroups were configured in Spark Fastpath Webchat Plugin.
- [ENT-112] - Conversation archiving was sometimes logging a conversation as two conversations.
- [ENT-36] - There was no way to disable chat transcript settings once set.
- [ENT-86] - Logging into fastpath was using the users current presence, and no longer defaulting to "Available".
- [ENT-166] - Emails were not being encoded in email transcripts.
- [ENT-78] - User is now alerted in offline settings if their email settings were not set.
- [ENT-81] - Fixed Javascript error in webchat userinfo page. (province not found)
- [ENT-137] - Crossdomain servlet was not sending out correct response occasionally.

### Openfire Connection Manager Module

- [JM-1127] - Parsing XML containing multibyte characters could add null characters to the resulting stanza.
- [JM-1054] - Updated MINA library to latest version.

## 3.3.2 -- June 22, 2007

### Openfire New Features

- No changes

### Openfire Bug Fixes

- [JM-1087] - ! Fixed out of memory problem produced by XMPPDecoder.
- [JM-1088] - ! Fixed out of memory problem produced by XMLLightweightParser.
- [JM-1074] - HTTP Binding no longer depends upon /resources/spank directory.
- [JM-1090] - Modified SSO authorization to use uppercase when comparing principals.

### Openfire Enterprise

- No changes

### Openfire Connection Manager Module

- [JM-1087] - ! Fixed out of memory problem produced by XMPPDecoder.
- [JM-1088] - ! Fixed out of memory problem produced by XMLLightweightParser.

## 3.3.0 -- April 12, 2007

### ! Upgrade Information

Due to the name change from Wildfire to Openfire you must follow the steps descibed in the upgrade guide.

### Openfire New Features

- Renamed Wildfire to Openfire.
- [JM-14] - Improved delivery strategy when connected from multiple resources.
- [JM-1006] - Added support for room event listeners.
- [JM-1007] - Occupants in rooms can now be seen from the admin console.
- [JM-420] - Created ad-hoc command that forwards packets to components.
- [JM-868] - Added favicon to admin console.
- [JM-1021] - Added web folder to the plugin classloader.
- [JM-1024] - Updated JVM to 1.6.0_u1.

### Openfire Bug Fixes

- [JM-1022] - Fixed memory leaking problem in HttpBinding.
- [JM-1009] - Messages sent to bare-JID addresses were sent to resources with negative priority.
- [JM-897] - Client sessions were not always being counted correctly. (3 votes)
- [JM-1031] - Links were incorrect when using child plugins. Thanks to Guus der Kinderen.
- [JM-1004] - ComponentManager could be null after modules have been started.
- [JM-1028] - Fixed NPE when no room name was specified when trying to register with room.
- [JM-1023] - Unicode (UTF-8) charset is now used instead of ISO-8859-1 in admin console pages.

### Openfire Enterprise

- [ENT-93] - Added support for group chats archiving.
- [ENT-94] - Updated iText library to latest version.
- [ENT-95] - Updated jRobin library to latest version.

### Openfire Connection Manager Module

- No changes

## 3.2.4 -- March 29, 2007

### Wildfire New Features

- [JM-1018] - Updated MINA library to latest version.

### Wildfire Bug Fixes

- [JM-991] - Fixed XML parsing problem with />. (1 vote)
- [JM-1003] - Fixed XML parsing problem with open quotes. (1 vote)
- [JM-1019] - Changed idle timeout to 6 minutes.

### Wildfire Enterprise

- [ENT-101] - Transfers and invites across workgroups were failing.

### Wildfire Connection Manager Module

- [JM-991] - Fixed XML parsing problem with />. (1 vote)
- [JM-1003] - Fixed XML parsing problem with open quotes. (1 vote)

## 3.2.3 -- March 15, 2007

### Openfire New Features

- [JM-998] - Added milliseconds to timestamp in the audit log.
- Stream compression is back again available.

### Openfire Bug Fixes

- [JM-993] - Removing idle connections could fail and freeze the server. (1 vote)
- [JM-997] - Fixed TLS problem when using Pandion.
- [JM-1001] - Fixed http-binding deadlock.
- [JM-992] - Direct buffers were used by default instead of heap buffers.
- [JM-994] - IQ packet sent to a full JID that was not available was being routed to other resource of the same user.
- [JM-987] - Server can now recover from UnknownHostException during setup.
- [JM-990] - IQ type is now verified when handling iq:version requests.
- [JM-996] - Invalid SASL mechanisms were being offered to CMs.
- [JM-1002] - Changed default idle timeout value to 2 minutes.

### Openfire Enterprise

- [ENT-90] - Metadata of user request is now included when initiating or transferring to another agent.

### Openfire Connection Manager Module

- [JM-995] - Connection Manager connection was being closed when client used invalid SASL mechanism.
- [JM-992] - Direct buffers were used by default instead of heap buffers.
- [JM-997] - Fixed TLS problem when using Pandion.
- [JM-1000] - Connection Managers were not using SRV records for the DNS lookup.

## 3.2.2 -- February 19, 2007

### Openfire New Features

- No changes

### Openfire Bug Fixes

- [JM-983] - Client became unresponsibe after sending message that ended with "/".
- [JM-984] - Client became unresponsibe after sending a stanza with a comment.
- [JM-985] - Fixed presence problem when shared groups can be seen by other groups.
- [JM-986] - Fixed out of order RID errors in HTTP-Binding.
- [JM-966] - Disabled multi-cast DNS by default.

### Openfire Enterprise

- No changes

### Openfire Connection Manager Module

- [JM-983] - Client became unresponsibe after sending message that ended with "/".
- [JM-984] - Client became unresponsibe after sending a stanza with a comment.

## 3.2.1 -- February 15, 2007

### Openfire New Features

- [JM-974] - Updated MUC implementation to send role="none" when leaving a room.
- [JM-978] - Updated MINA library to latest version.
- [JM-977] - Updated bouncycastle library to latest version.
- New draft page for importing signed certificates.

### Openfire Bug Fixes

- [JM-970] - Fixed deadlock when using old SSL method.
- [JM-980] - Fixed DOS attack by closing connection from client that tries to send a "never ending" packet.
- [JM-981] - Fixed parsing of packets with nested elements with the same name.
- [JM-981] - Fixed parsing of <\stream:stream>.
- [JM-968] - The https port was not working in the admin console.
- [JM-963] - A throwable exception was preventing users from logging in.
- [JM-959] - HTTP-Binding was failing over HTTPS.
- [JM-969] - HTTP-Binding sessions were not being closed properly.
- [JM-971] - Messages could be lost when using HTTP Binding.
- [JM-973] - HTTP-binding would be held open and not closed when new packets arrived.
- [JM-972] - Fixed presence problem when shared groups can be seen by a common non-shared group and both users belong to such group.
- [JM-979] - Fixed NPE when auditing message received from legacy network.
- [JM-962] - PLAIN SASL authentication failed to authenticate clients that were sending bare JIDs.
- [JM-975] - Client connections were closed before flushing end of stream stanza.
- [JM-967] - Plugins that require a newer server version were shown as available to be installed.
- [JM-965] - Available Plugins was listing reports that list "has not been downloaded" when all available plugins were installed.

### Openfire Enterprise

- [ENT-53] - Webchat is now more resistant to network failures.
- [ENT-68] - Webchat setup is now always required.
- [ENT-69] - Webchat was not connecting to agent when using IE6.
- [ENT-70] - Webchat could kill the JVM when not able to connect to Openfire.
- [ENT-71] - Webchat now properly disconnects dangling connections.
- [ENT-79] - SIP Phone now sends on-phone presence.

### Openfire Connection Manager Module

- [JM-970] - Fixed deadlock when using old SSL method.
- [JM-980] - Fixed DOS attack by closing connection from client that tries to send a "never ending" packet.
- [JM-981] - Fixed parsing of packets with nested elements with the same name.
- [JM-978] - Updated MINA library to latest version.
- [JM-977] - Updated bouncycastle library to latest version.

## 3.2.0 -- February 6, 2007

### Openfire New Features

- [JM-925] - Improved scalability of Openfire.
- [JM-356] - Added support for XEP-0124: HTTP Binding. (34 votes)
- [JM-936] - Added STUN server support.
- [JM-937] - Added Media Proxy for Jingle.
- [JM-941] - Allowed to set read timeout when connected to LDAP (requires Java 1.6).
- [JM-912] - Added listener for offline messages. (1 vote)
- [JM-944] - Bundled root certificate of XMPP Intermediate Certificate Authority.
- [JM-948] - Updated truststore with Java 6 built-in certificates.
- [JM-946] - Removed Jetty information from HTTP headers.
- [JM-892] - Simplified certificates creation and process of signing certificates. (10 votes)
- [JM-767] - Added Mac OS X DMG installer.
- [JM-893] - Added support for certificate event listeners.
- [JM-934] - Added new plugin that provides load statistics.
- [JM-914] - Added new ad-hoc command to get server info and basic statistics.
- [JM-657] - Optimized algorithm used for sending packets to remote servers when new connections are required.
- [JM-924] - PacketInterceptors are now triggered in the routing layer and not the networking layer.
- [JM-915] - Added support in ComponentManager for sending packets in blocking mode.
- [JM-901] - Updated support for 'creation of collection nodes' based on latest XEP-60.
- [JM-913] - Support for multiple subscriptions is now optional in PubSubModule.
- [JM-931] - Allowed components to create nodes and publish items.
- [JM-949] - Default configuration of new group chat rooms can now be configured.
- [JM-950] - Group chat rooms are now not anonymous by default.
- [JM-952] - Allowed to explicitly specify the FQDN of the server.
- [JM-935] - Added to the admin console information about ports being used by the server.
- [JM-900] - Upgraded to latest installer version.
- [JM-888] - Updated bouncycastle library to latest version.
- [JM-939] - Updated bundled JVM to 1.6.0 (Note: Java 5 or later is required).

### Openfire Bug Fixes

- [JM-957] - Execution of DB2 scripts is now working.
- [JM-947] - A nice error message is now displayed when trying to view user properties of a non-existent user.
- [JM-943] - Messages with no body and no subject were being store in rooms' history.
- [JM-940] - Fixed NPE in server certificates page.
- [JM-885] - Fixed parsing of mappings when using more than one LDAP field.
- [JM-886] - Loaded vCards were not being updated after reconfiguring LDAP settings.
- [JM-906] - Email test page was not working when integrated with LDAP.
- [JM-954] - No IQ error was being returned when an error occurs while processing an IQ roster packet.
- [JM-887] - PluginManager was being used by modules before it was created.
- [JM-889] - Fixed NPE in LdapVCardProvider when username was not found.
- [JM-890] - Fixed error when IQ error packet failed to be handled.
- [JM-895] - TLS was being offered even when keystore was empty.
- [JM-896] - Fixed error that was closing a database statement twice.
- [JM-902] - Component domain was not being released if an error occured while registing a new component.
- [JM-916] - External components were able to connect to the server before the server has finished to start up.
- [JM-903] - Sending "subscribed" presence to a new user was updating roster of both users.
- [JM-918] - Fixed error when shared group had no display name.
- [JM-928] - Clicking on login link from setup could fail with 404.
- [JM-933] - Enabling/disabling anonymous connections no longer requires a server restart.
- [JM-938] - "Per-user offline message storage limit" can now be updated.
- [JM-755] - Fixed compilation problem under JDK 1.6.

### Openfire Enterprise

- [ENT-50] - Added support for SIP integration.
- [ENT-35] - Archiving was only done one-way with gateways.
- [ENT-44] - Added support for transfering support session to another workgroup, queue, agent or user.
- [ENT-63] - Fixed security breach when viewing messages of ongoing support sessions.
- [ENT-56] - Warning message is now displayed when license is about to expire (30 days).
- [ENT-54] - Added support for iq:version to components to discover Openfire version.
- [ENT-55] - Changed license validation to validate maintenance date.
- [ENT-62] - Fixed display error in dashboard when accessing the page immediately after start up.
- [ENT-37] - Fixed error in MSSQL due to conflict with keyword.
- [ENT-59] - Added Portuguese translation.

### Openfire Connection Manager Module

- [JM-907] - Improved scalability of ConnectionManagers.
- [JM-926] - Added stringprep operations in Connection Manager to offload Openfire.

## 3.1.1 -- October 27, 2006

### Openfire New Features

- [JM-870] - Added support for testing administrator accounts during LDAP setup.
- [JM-875] - Added support for testing user mapping settings during LDAP setup.
- [JM-876] - Added support for testing group mapping settings during LDAP setup.
- [JM-877] - Added support for changing existing LDAP settings from admin console.
- [JM-722] - Added alternate base DN support for user data. (3 votes)
- [JM-595] - Admin console now shows last time a user logged out from the server. (5 votes)
- [JM-866] - Increased max size of LDAP filters to 250 characters.
- [JM-864] - Updated LDAP guide with new setup procedure.
- [JM-871] - Updated Java mail library to latest version.
- [JM-879] - Streamlined build process.

### Openfire Bug Fixes

- [JM-859] - Conflict policy is now applied after successful login when using iq:auth.
- [JM-878] - Some settings were not being saved when configuring LDAP from the admin console.
- [JM-880] - Logging into the admin console could not work after initial setup when using LDAP.
- [JM-883] - UTF-8 was not always being used when reading/writing XML content.

### Openfire Enterprise

- [ENT-30] - Enabling/disabling meta-data archiving was not working.
- [ENT-31] - MS-SQL 2005 script failed to execute.
- [ENT-32] - Conversations with users through gateway were not being marked as external.
- [ENT-33] - Fixed editing of routing rules when using quotes.
- [ENT-34] - Removed scheduling feature from Fastpath.

### Openfire Connection Manager Module

- [JM-867] - Socket connections were closed under high load.
- [JM-881] - Fixed NPE when closing connection manager session.

## 3.1.0 -- October 9, 2006

### Openfire New Features

- [JM-761] - Added new gateway plugin with AIM and ICQ support. (36 votes)
- [JM-769] - Added Yahoo protocol support to the gateway plugin. (18 votes)
- [JM-770] - Added MSN protocol support to the gateway plugin. (27 votes)
- [JM-193] - Improved LDAP support. (26 votes)
- [JM-820] - Added support for presence event listeners.
- [JM-797] - Added database statistics monitoring.
- [JM-807] - Added support for roster event listeners.
- [JM-804] - Added support for component event listeners.
- [JM-860] - Added Pack200 support for plugins.
- [JM-843] - Optimized session retrieval from SessionManager.
- [JM-816] - Created ad-hoc commands for managing groups.
- [JM-808] - Enhanced roster to be able to hold non-persistent roster items.
- [JM-194] - Editing of users is now not allowed when they are read-only. (1 vote)
- [JM-833] - Improved openfired script.
- [JM-771] - Added search method to GroupProvider. (1 vote)
- [JM-824] - Added #getComponents() to InternalComponentManager.
- [JM-827] - Upgraded to hsqldb 1.8.0.5.
- [JM-805] - Updated JVM to 1.5.0_08.

### Openfire Bug Fixes

- [JM-851] - Fixed presence issues with LDAP and shared groups. (3 votes)
- [JM-844] - Enabled LDAP connection pooling by default.
- [JM-832] - Connection pooling is no longer used for LDAP authentication.
- [JM-846] - Improved error handling if connection to JS plugin update service is not possible.
- [JM-854] - Improved handling of SQL command parts.
- [JM-839] - Internal server errors while processing MUC packet was not returning any response to client.
- [JM-842] - Message flooding was checking ALL sessions instead of only user sessions.
- [JM-818] - Change in DB upgrade code broke plugin upgrades.
- [JM-819] - Upgrades for non-Openfire schemas was checking against wrong version.
- [JM-822] - Users from LDAP now have correct creation date.
- [JM-691] - Documentation for "Create a shared roster group" was incorrect. (3 votes)
- [JM-826] - MUC disco name was being hardcoded.
- [JM-828] - Rooms were allowing owners, admins and outcasts to be duplicated.
- [JM-862] - Messages with no body and no subject were being logged in group chat rooms.
- [JM-817] - Fixed small security hole in email settings page.
- [JM-781] - Stream compression is now optional by default for client-2-server connections.
- [JM-792] - Improved syntax of LDAP searchFilter and groupSearchFilter.
- [JM-809] - In band registration was accepting new users with no password.
- [JM-810] - Presence subscription packets sent to the server were broadcasted to all connected users.
- [JM-701] - Fixed bug with roster modification when deleting shared group. (7 votes)
- [JM-801] - Removing users from shared group could generate roster items in the database.
- [JM-811] - Fixed case-sensitive error while authenticating users.
- [JM-784] - Success data included after a SASL successful operation was not being encoded.
- [JM-794] - SASL mechanisms were being offered to remote servers even before securing the socket.
- [JM-796] - Fixed "null cert chain" error when trying to secure s2s connection.
- [JM-789] - CN field in certificates was not being correctly parsed.
- [JM-785] - Retrieving a privacy list was including two list elements in the answer.
- [JM-780] - Plugin check is now based on original JAR date, not on unzip date.
- [JM-786] - JDBCAuthProvider and JDBCUserProvider were using wrong property names.
- [JM-812] - It was not possible to retrieve offline messages with invalid XML characters.
- [JM-793] - Counter of client sessions was wrong.
- [JM-783] - Admin console now displays actual bound IP address. (1 vote)
- [JM-790] - Removed database scripts from the openfire JAR.
- [JM-815] - Changed <entity/> element to <subscription/> element in response to subscription request.
- [JM-861] - Moved abrupt connection closure messages to debug.
- [JM-863] - XMLProperties was not able to store CDATA.

### Openfire Enterprise

- No changes

### Openfire Connection Manager Module

- [JM-795] - DNS SRV lookup was overriding port to use to connect Connection Manager to server.
- [JM-788] - manager.xml was not using the correct property for setting the client port. (1 vote)
- [JM-814] - Connections between Connection Managers and Openfire are not encrypted by default.

## 3.0.1 -- July 13, 2006

### Openfire New Features

- [JM-752] - A proxy server can now be used to download updates. (1 vote)
- [JM-754] - Added JDBC user provider and documentation.
- [JM-759] - Added support for vCards events. Thanks to Remko Tronçon.
- [JM-762] - Performance optimized by reducing privacy list SQL calls when no privacy lists used.

### Openfire Bug Fixes

- [JM-744] - Presence updates were not being sent to shared contacts whose subscriptions is FROM.
- [JM-745] - Users of the same group (not shared) that can see a shared group were receiving presences of each other.
- [JM-750] - Presence subscription was incorrect when adding group member to non-shared group that could see shared group.
- [JM-758] - Available presence was not being sent to all connected resources after subscription was approved.
- [JM-775] - Member of public group was not able to add to his roster contact that did not belong to public group.
- [JM-776] - Members of public shared groups were not getting their rosters updated when a new user was created in the system.
- [JM-777] - Presence was not working when creating new shared groups and at the same time defining list of members.
- [JM-695] - Fixed presence problem when using shared group loaded from LDAP. (5 votes)
- [JM-772] - An error is now logged when Openfire cannot connect to the LDAP server.
- [JM-741] - Fixed javascript error while updating plugin. (1 vote)
- [JM-742] - Fixed NPE in privacy lists when presence packet has no TO address.
- [JM-748] - Fixed NPE when trying to unload a bad plugin in plugin-admin page.
- [JM-749] - TLS feature was being offered to clients using old SSL method.
- [JM-760] - Fixed login problem when using uppercase letters in username and there is a resource conflict.
- [JM-763] - Removed warning from logs on installation.
- [JM-768] - A semicolon was missing in mysql and sqlserver upgrade scripts #9.
- [JM-778] - Fixed error when trying to unregister an account from a client.
- [JM-751] - Moved getPassword/setPassword methods from UserProvider to AuthProvider.

### Openfire Enterprise

- [ENT-19] - Message archiving was failing on Postgres.

### Openfire Connection Manager Module

- No changes

## 3.0.0 -- June 29, 2006

### Openfire New Features

- [JM-666] - Added support for connection managers.
- [JM-281] - Added support for Kerberos/NTLM (status: experimental). (56 votes)
- [JM-673] - Added database support for plugins.
- [JM-677] - Added i18n support for plugins.
- [JM-718] - Added servlet filter framework for plugins.
- [JM-683] - Added support for virtual connections.
- [JM-684] - Added support for JEP-0164: vCard Filtering
- [JM-704] - Added support of other password types to JDBCAuthProvider.
- [JM-715] - Added support for notifications of new server or plugins updates.
- [JM-740] - Added support for adding/removing SASL mechanisms at runtime.
- [JM-719] - Allowed flat searches of LDAP instead of sub-tree.
- [JM-680] - Improved performance of server-to-server connections by using many threads to process incoming packets.
- [JM-720] - Improved performance of SessionManager#getSessionCount().
- [JM-687] - Added support for non-blocking connections (status: experimental). (1 vote)
- [JM-717] - Updated the look and feel in the admin console.
- [JM-305] - Server features list is now dynamic. (1 vote)
- [JM-652] - Caching of favicons has been improved.
- [JM-675] - File transfer service can now be enabled/disabled. (2 votes)
- [JM-676] - MUC service can now be enabled/disabled. (1 vote)
- [JM-679] - SASL success stanza now includes challenge data that needs to be processed by clients.
- [JM-678] - SASLAuthentication was refactored to accommodate HTTP Binding and Connection Managers. (1 vote)
- [JM-688] - Updated third-party libraries.
- [JM-713] - Updated bundled MySQL driver.
- [JM-688] - Upgraded to JDK 1.5.0_07.

### Openfire Bug Fixes

- [JM-702] - Presence updates were not being broadcasted to other connected resources. (4 votes)
- [JM-735] - Presence packets sent to bare JIDs were not being sent to all connected resources.
- [JM-731] - DNS lookups was failing with some DNS servers.
- [JM-707] - A <system-shutdown/> stream error condition is now sent when shutting down the server.
- [JM-653] - FileTransfer was not implementing Cacheable.
- [JM-654] - Fixed conflict in Proxy Transfer cache name.
- [JM-655] - File Transfer Proxy no longer returns null disco#items.
- [JM-710] - File Transfer Proxy socket was not being cleaned up properly.
- [JM-721] - File Transfer Proxy did not acknowledge configured interface.
- [JM-661] - Field digest_frequency of pubsubSubscription table in MySQL was too small.
- [JM-665] - Accessing published items of a pubsub node was expecting that requester was subscribed to the node.
- [JM-672] - Updated the way pubsub node owners manage node affiliations and subscriptions.
- [JM-708] - Answer format was incorrect when returning pubsub node affiliations or node subscriptions of a node owner.
- [JM-667] - Roster items with subscription NONE and ask PENDING were being sent to clients.
- [JM-668] - Fixed error when deleting a user with shared contacts that belong to public shared groups.
- [JM-669] - Added fix for "javax.net.ssl.SSLException: Unsupported record version Unknown" error.
- [JM-729] - Server was not processing IQ errors triggered by IQ requests made by the server.
- [JM-732] - mucConversationLog was storing room's JID instead of the sender's JID.
- [JM-681] - No more than 5 concurrent threads were used for creating new server-to-server connections.
- [JM-670] - Flash clients were waiting forever for a response if old SASL method failed or there was a conflict while binding a resource.
- [JM-671] - Fixed NPE when external component did not include a TO attribute in stream header.
- [JM-674] - Fixed NPE in IQDiscoItemsHandler when an ServerItemsProvider was disabled.
- [JM-698] - Fixed bug in XMLProperties.getChildren.
- [JM-728] - Fixed PK length error when upgrading jivePrivate in MySQL using URF-8.
- [JM-736] - Added commit statement to Oracle db scripts.
- [JM-737] - Fixed invalid character error when upgrading Oracle database.
- [JM-700] - Increased the column size of "username" from 32 to 64.
- [JM-706] - Non-SASL Authentication stream feature was not being offered when anonymous login was disabled.
- [JM-712] - VCard manager was not returning vcard-temp as a stream feature.
- [JM-726] - Privacy list now implements Cacheable interface.
- [JM-656] - Streamlined disco registration process.
- [JM-709] - An exception is now thrown when plugin servlet class was not found.
- [JM-663] - UserProvider no longer depends on VCardManager.

### Openfire Enterprise

Initial release.

### Openfire Connection Manager Module

Initial release.

## 2.6.2 -- April 20, 2006

### Bug Fixes

- [JM-648] - Server-to-server thread pool was getting exhausted when remote servers were unresponsive.
- [JM-650] - Fixed concurrency problem that was closing active connections by mistake.
- [JM-642] - Deleting a user was not removing all references from memory.
- [JM-646] - Fixed error when searching for groups of a non-local user when using LDAP.
- [JM-571] - File transfer proxy was not being removed from service discovery when disabled. (1 vote)
- [JM-638] - Unhandled exceptions while processing IQ packets were not always returning IQ errors.
- [JM-639] - Fixed ConcurrentModificationException while purging a pubsub node.
- [JM-640] - A "service-not-implemented" error was being returned after an ad-hoc command was handled by pubsub.
- [JM-641] - Modified pubsub tables so that all supported databases may correctly run the database scripts.
- [JM-644] - Allowed Base64 decoding that doesn't encode bytes as String.
- [JM-645] - Fixed recursivity error in SessionManager when searching for best route.
- [JM-647] - Sometimes users were remaining as room occupants when using shared groups.
- [JM-649] - Increased proxy file transfer buffer size.

## 2.6.1 -- April 11, 2006

### New Features

- [JM-222] - Entire user base is no longer loaded when using public shared groups. (1 vote)
- [JM-634] - Shared contacts whose subscription type is FROM are no longer kept in memory.
- [JM-633] - Added sorting to session list.
- [JM-637] - Added support for basic commands defined in JEP-133: Service Administration.

### Bug Fixes

- [JM-636] - After initial install new user accounts were corrupted until restart.
- [JM-630] - Fixed upgrade scripts of PostreSQL, SQLServer and Sybase.
- [JM-631] - New user passwords were not being saved to the database.

## 2.6.0 -- April 6, 2006

### New Features

- [JM-291] - Encrypted passwords are now stored in the db. (21 votes)
- [JM-613] - Added support for JEP-0060: Publish-Subscribe. (1 vote)
- [JM-298] - Auditing now supports rolling over by date. (12 votes)
- [JM-599] - Improved performance by avoiding queries to load users.
- [JM-607] - Improved performance by avoiding unnecessary LDAP queries.
- [JM-608] - Improved performance when detecting which groups are shared groups.
- [JM-621] - Improved performance by avoiding using locks in RoutingTable (server core).
- [JM-605] - Improved performance by caching groups.
- [JM-606] - Added JDBC Authentication provider.
- [JM-600] - Added support for managing system caches from the admin console.
- [JM-624] - Allowed external components to bind more than one domain.
- [JM-603] - Improved db upgrade process.
- [JM-609] - Refactored Ad-hoc commands so that services can also offer ad-hoc commands.
- [JM-597] - Improved LDAPGroupProvider Exception Handling.
- [JM-625] - Added support for XMPPServer listeners.
- [JM-620] - Added development mode for web.
- [JM-623] - Exposed port in connection object.
- [JM-614] - Updated third-party libraries.

### Bug Fixes

- [JM-615] - Fixed deadlock when loading users and rosters.
- [JM-621] - Fixed deadlock in RoutingTable.
- [JM-495] - Server session tab was loading very slow.
- [JM-596] - LDAP connections were not being closed correctly.
- [JM-601] - LDAP referrals were not being respected while verifying authentication.
- [JM-604] - SASL EXTERNAL for s2s was not checking if certificate validation was disabled.
- [JM-611] - PLAIN SASL authentication was not accepting empty auth packets.
- [JM-627] - Null SASL responses were not being padded.
- [JM-610] - Fixed NPE in privacy list when user session no longer exists.
- [JM-612] - Registering new internal components was not checking that component domain is not taken.
- [JM-618] - Remote server count was wrong.
- [JM-619] - Names of users were not being sorted when loading from database.
- [JM-622] - Admin console was failing to startup on unexpected log impl.
- [JM-626] - Several instances of the same disco#item could appear in the server's disco#items.
- [JM-628] - Pretty printing of openfire.xml file was not always working.