# SmartFoxServer 2X v2.13.9 cumulative patch

PLEASE NOTE: this cumulative patch can be used to update SFS2X from versions 2.13.0 For previous versions please install version 2.13.0 first, then apply this patch.

## How to use

- Unzip the patch and copy the decompressed folder inside your SmartFoxServer_2X/ installation folder.
- Open the patch folder.
- Run one of the three launch scripts based on the operating system in use:
  - Windows: double click the install-win.bat file
  - Linux: from a terminal run the install-linux.sh script
  - MacOSX / Unix: from a terminal run the install-osx.sh script

### Version 2.13.9

- Server Side
  - NEW: updated license management, with hot-reloading for ip-based licenses and other improvements

### Version 2.13.8

- Server Side
  - NEW: improved License Server communication with faster response times; also the License Server is now reachable from China since the infrastructure was moved from Google App Engine to Amazon Web Services
  - NEW: added support for Emergency License
  - NEW: grace period increased to 96 hours (4 days) in case an error occurs during periodic license validation
  - FIX: problem preventing SFS to enter grace period under extremely rare circumstances if an error occurs during periodic license validation

### Version 2.13.7

- Server Side
  - FIX: Issue when throwing an SFSLoginException from a Javascript Extension

### Version 2.13.6

- Server Side
  - FIX: patched issue in Jetty websockets causing potential native memory leaks
  - UPDATE: new geolocalization database
  - NEW: added new module in AdminTool to upload and manage Jetty servlets
  - NEW: added new feature in AdminTool's ServerConfigurator to upload SSL certificates
  - NEW: added support for "X-Forwarded-For" header for websocket/BlueBox to detect IP of clients behind a proxy

PLEASE NOTE: the previous config/ExtensionLock.txt file used to block unauthorized uploads is no longer used, starting with this release.
It is now replaced by config/UploadsLock.txt which works as a lock for Extensions, Servlets and SSL certificates.
To authorize uploads from the AdminTool you will need to remove or rename the config/UploadsLock.txt file.

### Version 2.13.5

- Server Side
  - FIX: improved performance of Jetty websocket implementation

### Version 2.13.4

- Server Side
  - NEW: added support for allowed websocket origins. Provides extra configuration parameters under ServerSettings > Web Server, to specify which origins are allowed to connect via websocket. Useful to protect against connections coming from URLs other than those hosting the actual game/app
  - FIX: improved BlueBox performance via dedicated thread pool to avoid a corner case interference with socket engine performance
  - FIX: the websocket max message size is now synchronized to the maxIncomingPacketSize parameter found in config/core.xml

### Version 2.13.3

- Server Side
  - FIX: fixes a regression introduced by previous patch (2.13.2) for BlueBox connections

### Version 2.13.2

- Server Side
  - FIX: corner case where join requests from already disconnected clients could lead to ghost users remaining stuck in a Room

### Version 2.13.1

- Server Side
  - NEW: support for Java 8 lambdas in Extensions
  - NEW: added option to pre-start all threads in the auto-load balancing thread pools
  - FIX: updated commons-collections 3.2.2 which fixes a security issue
  - FIX: extensions JS API calls with optional parameters can cause runtime exception if optional values are not passed
  - FIX: performance improvement for Group event dispatch, when running lots of NPCs