There’s a bug in the TCP OOB (out of band) data handling code in all versions of The Server Framework from 6.6 through to 7.4. This issue manifests as a purecall during socket destruction and is due to a race condition during the release of the last two references held on a socket. If you don’t use OOB then a simple work around is to comment out the following in TAsyncSocket.
The code for this series of articles is now available on GitHub and has been updated for Visual Studio 2022. This code is licensed with the MIT license.
I’ve updated the code as I expect it will be useful as a comparison to the code that I eventually come up with for using \Device\Afd to access the Windows networking stack. You can read about my adventures with Afd here
It seems amazing but the last time we did a release of The Server Framework was in 2021. Since then the mainline development of the framework has been pretty stable with no new bug reports. Most of the time the code doesn’t need a new release to handle minor changes in compiler version and often it’s easy enough for client’s to do these changes themselves.
I’m planning a maintenance release, 7.
We’ve just found out that an email misconfiguration means that some emails to serverframework.com email addresses have been bouncing. This should be fixed now! Sorry about the inconvenience. If you have contacted us recently and not had a reply, please try again now!
As you’ll see, we released 3 new versions of The Server Framework today. Of these, only the 7.3 release includes code changes. The 7.2 release updates almost every header file in the framework to remove ‘old style’ include guards and touches lots of source files to remove lint directives that we no longer use. This kind of change creates a lot of noise in an update and so it has been done separately to the functional changes to make it easier for users of the framework to see what has actually been changed in 7.
Version 7.4 of The Server Framework was released today.
This release includes no bug fixes and no new code. It removes deprecated code and removes support for Visual Studio 2015.
Version 7.3 of The Server Framework was released today.
This release includes bug fixes and new code.
As always, see the release notes here, for full details of all changes.
Bug fixes:
Fixed a bug with JetByteTools::Core::CCallbackTimerWheel which would show up if the time provider was providing ticks at a different granularity than the granularity of the wheel. Fixed a bug in CDatagramSocketConnectionManager and CDatagramSocketServer where the buffers returned in write and sendTo completion callbacks had an incorrect number of bytes set as ‘used’.
Version 7.2 of The Server Framework was released today.
This release includes no bug fixes and no new code. It adds support for Visual Studio 2022 and removes redundant manual include guards from most header files and removes unused “lint” directives from some of the older files. As such this release just serves as a stepping stone to the 7.3 release and makes it easier to see the changes that are made in the 7.
Version 7.1 of The Server Framework was released today.
This release includes no bug fixes but begins to apply transformations that will allow code to compile on different platforms.
The next release, 7.2, will add in functional changes and bug fixes. If you haven’t yet migrated to 7.x, please see the 7.0 release notes. There will be no more releases of the 6.9.x release stream.
As always, see the release notes here, for full details of all changes.
Version 7.0 of The Server Framework was released today.
This release includes no functional changes or bug fixes but moves code that could compile on different platforms out of the Win32Tools library and into a new CoreTools library. It also updates all include paths to use / rather than \ as / is valid on Unix-based systems and also on Windows.
The next release, 7.1, will begin to move the code towards cross platform compilation and the release after that will add in functional changes and bug fixes.