SmartFoxServer PRO 1.6.20 :: Release Notes

SmartFoxServer 1.6.20 includes all previous bug-fixes and new features introduced in patches 1.6.7 through 1.6.19 plus the following changes:

1.6.20:

- Requirements:

- SmartFoxServer 1.6.6 (Full Installer) is required.
- If you previously patched an earlier SmartFoxServer PRO with the 1.6.6 patch then this update is not going to work.
- Please install SmartFoxServer 1.6.6 (Full Installer) before using this patch.

- Server Side:

- Fixed an issue whereby replacing the embedded JRE with JRE 1.8.x would cause a startup error under Windows.

(*) NOTE:
The installation of the patch does not modify/alter your current BuddyList 2.0 database tables. It will only create the index on tables generated after the patch was installed. If you want to fix your current tables for better performance you can do it by following the simple instructions provided in this post from our support board.

Known Bugs:

There is a known bug related to the creation of non-player characters (NPC). We have noticed that all connections coming from NPCs remain in CLOSE_WAIT state after closing them. This is not an issue if NPCs are created once and then used for the entire life cycle of the server instance. However if you plan to dynamically create and destroy many of them it could eventually exhaust the number of sockets/file-descriptors available of the underlying OS.

1.6.19:

- Server Side:

- Patched an attack scheme where a client disconnected while sending malformed packets could create one or multiple logged in users, when no server-side login credentials check is in place.

1.6.18:

- Server Side:

- Added more severe policy for malformed packets (XML, JSON and string based). Malformed requests will cause immediate client disconnection.
- Added checks for presence of ENTITY XML definitions.
- Added disconnection thread pool the event in parallel without blocking the socket-reader thread.

1.6.14:

- Server Side:

- Fixed critical security bug found in XML Java parser.

1.6.9:

- Server Side:

- Fixed MD5 generation concurrency issue
- Fixed an issue with possible wrong Room user counts
- Fixed an issue with possible duplicate playerId in Game Rooms
- Added new configurable limit for BuddyVariables value length: <maxBuddyVariableLen> (default = 255 chars), can be added in the BuddyList config block.
- Added new overloaded constructors for RoomVariables on the server side, similarly to UserVariable constructors
- Added IP of client sending a malformed packet in the warning message
- Added setTemp(boolean value) method to the Room class
- Added Room object in spectatorSwitch and playerSwitch events on server side

- Client Side:

- Server side updates referencing Rooms not managed by the local RoomList no longer throw Error #1009
- Improved error checking while looping over several aggregated messages
- Connecting to a Server that is not running no longer fires a Security error.

1.6.8:

- Server Side:

- Fixed a bug causing ClassCastException when calling Room.getAllUsers() method
- Fixed a bug in manually removing banned users from Admin Tool
- Fixed a bug with representation of booleans in User/Room Variables that could lead to wrong values
- Added support for forceLogin parameter in login method under Python server side framework

- Client Side:

- Fixed a bug with HTTP connection cacheing that could create potential problems with the BlueBox under specific circumstances
- Modified AS2 API to avoid checkRoomList verification for sendXtMessage. Might create problems with provided examples
- SecurityErrors in AS3 are now handled internally and traced to the console instead of letting the event bubbling up

1.6.7:

- Server Side:

- Fixed a bug causing an erratic NPE when removing IPs from IP filter
- Fixed a bug with banned users cleaning mode MANUAL
- Fixed a bug with removeBanishment server side method, failing to remove the banned user
- Added creation of specific H2DB indexes to enhance performance for very large Buddy List databases (*) (read note below)
- Fixed a bug in logging Actionscript exception which could cause NPE if the extension was cached
- Fixed an issue that could fire an NPE when checking a stale AddBuddy Permission request
- Fixed a possible concurrency issue when adding tasks to a Scheduler
- Minor performance optimizations for concurrent code in Server controllers
- Minor optimizations in resource saving in Server controllers

- Client Side:

- Changed the way multiple calls to getRoomList() affect the local API data. Now data is merged, instead of being overwritten. This should not affect any previous code.
- Fixed a compatibility issue with AS3 API and Linux Flash Player. The issue is due to a bug from Adobe, yet to be fixed in version 10 of the player.
- Fixed bug in AS2 API which would affect reconnection after first attempt fail when smartConnect feature is turned on

1.6.6:

- Server Side:

- Fixed a logging bug with Actionscript errors, resulting in a NPE
- Fixed a logging bug when loading a Buddy List, resulting in a NPE
- Fixed a bug with firing client side onBuddyListError when user buddylist is full
- An onBuddyListError is fired when User A attempts to add User B to his buddy list, using mutualAddBuddy, when User B has his list full
- Added new <WarnOnWrongZoneRequest> configuration parameter, allows to send a warning to the client when attempting to log into a non-existing Zone. It is recommended to turn it off in production.
- Added new <ownerListFullErrorMsg> setting in BuddyList 2.0 (see chapter 2.1 of the docs for more details)
- Added new <targetListFullErrorMsg> setting in BuddyList 2.0 (see chapter 2.1 of the docs for more details)
- Added new switchPlayer() server side method to turn a player into a spectator (opposite to switchSpectator)
- Added new PLAYER_SWITCHED server side Event
- Changed the way Zone Reload from the AdminTool works for Buddy List. Previously reloading Zones would clear all previous buddy lists
- Update embedded JRE (1.6.0_13)
- Updated embedded H2 database engine (1.1.110)
- Updated embedded Jetty http server (6.1.16)

- Client Side:

- Added new switchPlayer() request. Allows to turn a player into a spectator inside a game room
- Added new onPlayerSwitched event, fired in response to a switchPlayer() request

- Misc:

- New "Getting started" welcome page by simply pointing the browser to http://localhost:8080 after installing. Allows to quickly get started with SmartFoxServer PRO and browse all the Examples
- Added new SmartFoxBits BasePack Components (Community Edition) for Flex, including documentation and examples
- Added OpenSpace demo, including examples, documentation and Map Editor