Latest release of The Server Framework: 6.6.4
Version 6.6.4 of The Server Framework was released today.
This release is mainly a bug fix release for clients using WebSockets over SSL.
As always, see the release notes here, for full details of all changes.
Bug fixes:
- Bug fix to
JetByteTools::Win32::CallbackTimerQueueBase
which prevents the timeout handle from ever being incremented to zero. It’s unlikely but possible. - Bug fix to
JetByteTools::Win32::CBuffer
andJetByteTools::Win32::CLockFreeBuffer
to make code take notice of whenm_maxBytesToRead
is set. This was causing issues with WebSockets over SSL where the WebSocket code was setting a max read value and the SSL connector was ignoring it and providing more data than it should. - Bug fix to
JetByteTools::SSPI::SChannel::CAsyncConnector::PerformWrite()
so that we deal with exceptions appropriately. - Bug fix to
JetByteTools::Socket::CFilterDataBase::WriteData()
so that we deal with exceptions appropriately. - Bug fix for a highly unlikely possible situation in
JetByteTools::WebSocket::HyBi::CProtocolHandler::HandleData()
where a buffer in the read request buffers queue contains no space for more data.
Changes:
- Adjusted all includes to remove relative paths and instead be absolute in relation to the library root. So, rather than #include “..\Blah.h” it would always be #include “JetByteTools\Lib\Blah.h” this is due to a new warning in Visual Studio 2015 update 1.
- Added
JetByteTools::Socket::ListenBacklogMaxwhich
is aJetByteTools::Socket::ListenBacklog
value that can be used to cause the listen queue for a socket to be set toSOMAXCONN
. - Added
JetByteTools::Socket::TStreamSocketServerEx::SoMaxNumPendingAccepts
which is the number of accepts that are posted if a listen backlog ofJetByteTools::Socket::ListenBacklogMax
is specified for the number of pending accepts. At present this is set to 200. - Added
JetByteTools::Socket::TStreamSocketServerEx::SetListeningParameters()
which can be called after construction but before starting to accept connections and can specify the listen backlog and number of receives to post separately. This allows you to set the listen backlog toSOMAXCONN
usingJetByteTools::Socket::ListenBacklogMax
and set the number of receives to something other thanJetByteTools::Socket::TStreamSocketServerEx::SoMaxNumPendingAccepts
. You can also set a flag which tells the server not to close the listening socket when the server reaches a connection limit, instead it will simply stop posting accepts and so new connections will get to wait in the listen queue until they time out or until the server posts a new accept request. - Bug fix to to
JetByteTools::Socket::TStreamSocketServerEx
so thatOnMaxConnections()
is called correctly when the connection limit is reached. Previously it would often only be called the first time that the limit was reached.