Release notes

SmartFoxServer 2X
C++ API


Version 1.7.4
[NEW] Updated VS2015 configuration to build API as both dynamic and static library
[NEW] Added a preprocessor symbol in Visual Studio 2015 project settings to publish API classes/methods to customer application
[FIX] Added method RemoveEventListener in Logger class
[FIX] Added documentation for Logger class


Version 1.7.3
[FIX] Issue with platform-specific type size leading to incorrect conversion of negative integers on 64bit platforms.


Version 1.7.2
[FIX] SFSArray's Get methods return a default value instead of throwing an exception if the passed index is out of bonds.
[FIX] Crash in method GetIPAddress when IP Address is resolved to a null value.
[FIX] ForceIPv6 option not working in ConfigData object.
[FIX] BlueBox connection issues under macOS environment.
[FIX] initUDP method fails when called in overload version that does not require any input parameter.
[FIX] UDP transmission failure on macOS environment.
[FIX] Dispatching of UDP_INIT event when UDP connection cannot be established.
[FIX] BlueBox: removed line-break in Base64 encoding.
[FIX] BlueBox: added url-encoding in Base64 encoding.
[FIX] Visual Studio 2015 project settings for Windows x64 platform.
[FIX] ConfigData->UseBlueBox property issue when set to “false”.
[FIX] Added support for bool and string data types to MatchExpression class.
[CHANGE] Signatures of MatchExpression methods.


Version 1.7.1
[FIX] Issue in compiling JoinRoomInvitationRequest class.
[FIX] Added missing Boost files which prevented Eclipse from compiling the API.


Version 1.7.0
[NEW] Added new JoinRoomInvitationRequest class.
[NEW] Added new SFSDataType.TEXT allowing “long text” to be sent and received, up to 2 GBytes.
[NEW] Added support for 'private' User Variables, visible to their owner only.
[FIX] Added "room" parameter to EXTENSION_RESPONSE event, to make it uniform with other Room-related events; the previous "sourceRoom" parameter is still available but deprecated.
[FIX] Removed client side permission checks for kick and ban requests.


Version 1.6.4
[NEW] Added SmartFox.Connect method overload allowing a ConfigData object to be passed directly instead of loading an external xml file.
[NEW] Added "forceIPv6" parameter to client configuration to enable IPv6 support.


Version 1.6.3
[NEW] Visual Studio 2015 support added and new VS solution provided.


Version 1.6.2
[NEW] Boost library updated to release 1.59.
[FIX] Deadlock reading data from TCP/IP.
[FIX] Crash in disconnect sequence.
[FIX] Lock in CRYPTO_INIT event.
[FIX] Protocol encryption: allow usage of both domain name and IP address.


Version 1.6.1
[FIX] CONNECTION_RESUME event never fired.
[FIX] Random crash when resuming a connection.


Version 1.6.0
[NEW] Exposed Logger class to API consumer.
[NEW] Support for TLS encrypted protocol over TCP/UDP (requires SFS2X 2.10).
[NEW] Unified version number: starting at 1.6.0, the major and minor release identify the "feature support level", the sub version indicates the platform specific release number.
[FIX] Log messages aren't dispatched/filtered according to their level.
[FIX] Crash sending a ObjectMessageRequest request.
[FIX] Compilation errors when building the API in Linux/Eclipse environment.
[FIX] Missing notification of USER_EXIT_ROOM event when API are working in Thread Safe mode.
[FIX] Crash occurring in socket connection's retry.
[FIX] Bad value of Users' counter in a Room when an user leaves it (logout or disconnection).
[FIX] Compilation error building ZLib part of API in Visual Studio 2013 environment.
[FIX] Crash occurring during application shutdown.


Version 1.1.6
[FIX] Missing file \Core\BoostAsio\Windows\tools\build\v2\build\config-cache.jam, required to build Boost library in Windows environment.
[FIX] Crash occurring when calling Dispose method while communication with SmartFoxServer is going down. The crash is caused by the concurrence of Dispose method that wants terminate the connection to SmartFoxServer and the processing of the connection fall-down event.
[FIX] Deadlock caused by Dispose method.
[FIX] Error in processing a MatchExpression when value is an integer datatype.
[FIX] Empty changedVars vector returned by the OnUserVariablesUpdate event when threadSafeMode is used.


Version 1.1.5
[NEW] Added SmartFox.HttpUploadURI getter for HTTP-based file uploads to server.


Version 1.1.4
[FIX] Eclipse compiler error in cleanup of smart pointers.
[FIX] Client-server handshake error when connectiong through the BlueBox.
[FIX] Error in decoding long arrays sent by the server to the client.


Version 1.1.3
[NEW] SmartFox::Dispose method added, to be used when the SmartFox instance must be re-created.
[FIX] CONNECTION_RETRY and CONNECTION_RESUME events not being fired.
[FIX] Unable to connect via BlueBox when using a domain name instead of an IP address.
[FIX] Ambiguous reference to LogLevel class.
[FIX] Issue in SmartFox::SetClientDetails method.
[FIX] Most memory leaks have been fixed.


Version 1.1.2
[NEW] Boost library upgraded to version 1.55.
[NEW] Visual Studio 2013 support added and new VS solution provided.
[FIX] Crash when dumping an SFSObject containing an array.
[FIX] CONNECTION_LOST event not being fired (with reason "manual") when the Disconnect method was called.
[FIX] Inheritance from boost::enable_shared_from_this in MMORoom class definition causing a freeze when using the API for iOS development.


Version 1.1.0
[NEW] MMO API added, providing several new classes and functionalities for large and extra large virtual worlds and games (see SmartFoxServer 2X v2.8.0 release notes).


Version 1.0.1
[FIX] Player/Spectator roles not being set correctly.
[FIX] Buddy Variables update error.
[FIX] Possible crash when removing a Buddy Variable.


Version 1.0.0
[FIX] Error when uncompressing messages having uncompressed size > 65535 bytes.


Version 0.9.8 BETA
[FIX] Double dispatchment of "connection lost" event when connection is terminated due to idle timeout.


Version 0.9.7 BETA
[NEW] Added PasswordUtil class. Now the API is compatible with the Sign Up and Login server side components.
[FIX] "Undefined symbol Sfs2X::Bitswarm::BBox::BBClient::SEP" error when compiling API for iOS.
[FIX] UTF8 support.
[CHANGE] Namespace of Buddy-related requests changed from Sfs2X.Requests to Sfs2X.Requests.Buddylist for consistency with other APIs.
[CHANGE] Method Logger.EnableControlTrace renamed to Logger.EnableConsoleTrace for consistency with other APIs.
[CHANGE] Class QuickGameJoinRequest renamed to QuickJoinGameRequest for consistency with other APIs.


Version 0.9.6 BETA
[NEW] BlueBox support added.
[NEW] API refactoring to introduce smart pointers, for better memory management.
[NEW] Funtions having strings as parameters refactored to use values instead of pointers.
[NEW] UTF8 support.
[FIX] Missing "reason" in socket close event.
[FIX] Events processing/dispatching crash when ThreadSafeMode is active.
[FIX] Incorrect behavior of dump() method in SFSArray and SFSObject classes.
[FIX] Error in large messages compression/decompression.
[FIX] ByteArray class not publicily available.


Version 0.9.5 BETA
[NEW] Client configuration XML file parsing.
[NEW] UDP protocol.
[FIX] ThreadSafeMode bug.


Version 0.9.4 BETA
[NEW] Classes documentation added, with many code examples.
[FIX] All classes are now visible and can be instantiated in the client application.
[FIX] Wrong serialization/deserialization of float and double arrays.
[FIX] Application crash when ThreadSafeMode is turned on.
[FIX] User's GetVariable method returning NULL when retrieving a UserVariable.
[FIX] ExtensionRequest class initializazione error when NULL param is passed.


Version 0.9.3 BETA
[NEW] DNS resolution added.


Version 0.9.2 BETA
[NEW] Refined memory management.
[NEW] Boost ASIO I/O thread is now embedded in the API (before the creation of a new thread was left to the developer).
[NEW] Added SetClientDetails(...) method to specify the runtime platform and version to gather client type statistics on the server side.
[FIX] Fixed bugs in a few requests.


Version 0.9.1 BETA
[FIX] API can now be compiled in Linux/Unix systems.


Version 0.9.0 BETA
First release. Missing features:
- UDP support
- BlueBox support
- API documentation (temporarily refer to C# API documentation)
Known issues:
- Memory management is not 100% complete, leaks might occur
- Not all requests have been fully tested