Qt 5.9 introduces many new features and improvements as well as bugfixes
over the 5.8.x series. For more details, refer to the online documentation
included in this distribution. The documentation is also available online:

http://doc.qt.io/qt-5/index.html

The Qt version 5.9 series is binary compatible with the 5.8.x series.
Applications compiled for 5.8 will continue to run with 5.9.

Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Qt Bug Tracker:

https://bugreports.qt.io/

Each of these identifiers can be entered in the bug tracker to obtain more
information about a particular change.

****************************************************************************
*                               Library                                    *
****************************************************************************

- QWebSocketServer
 * [QTBUG-56129] SslMode::NonSecure enumerator now always has the same
   value (1) regardless of SSL being enabled or disabled.
 * [QTBUG-54276] Added a member function to handle external QTcpSocket,
   upgrading it to a QWebSocket.
 * [QTBUG-56414] Server now deletes a websocket when a 'disconnected'
   signal is received.
- QWebSocketHandshakeRequest
   [QTBUG-57357] Fixed the parsing of port in handshake requests.
- QWebSocketDataProcessor
   [QTBUG-55506] Call clear() before emitting textMessageReceived or
   binaryMessageReceived to avoid data corruption in case a slot blocks
   (for example, entering a nested modal loop while showing this message)
   while socket receives more data.
- QQmlWebSocket
 * [QTBUG-58278] Fix setUrl: only call open() if the 'active' property is
   true.

