Latest release of licensed socket server code: 6.1.1

The latest release of The Server Framework is now available. This release includes the following changes.

Note that this is mainly a bug fix release.

The following changes were made to the libraries.

Admin Library - 6.1.1

  • New build configuration options. All of these are enabled by defining the option to 1 in Config.h and disabled by defining them to 0; the default state if you do not do anything in Config.h is shown for each option:

  • JETBYTE_USE_CAPTURE_STACK_BACK_TRACE - enabled by default. Define to 0 to prevent the use of CaptureStackBackTrace() when building for platforms later than Windows XP. Normally we assume that CaptureStackBackTrace() is available on Windows XP SP1 and later, however if you’re building using the default Platform SDK that came with Visual Studio 2005 this does not include CaptureStackBackTrace() and so our platform version check wrongly includes code that cannot build.

  • JETBYTE_ADDITIONAL_BUFFER_TRACKING_CONTEXT and JETBYTE_ADDITIONAL_SOCKET_TRACKING_CONTEXT - by default the buffer and socket reference tracking code keeps one level of call stack context outside of the actual call within the library code that caused the reference to change. This is often enough context to track down the problem and keeps the amount of memory required for storing call stacks down. Sometimes, however, you need a little more context, in those situations you should define JETBYTE_ADDITIONAL_BUFFER_TRACKING_CONTEXT and/or JETBYTE_ADDITIONAL_SOCKET_TRACKING_CONTEXT to a value that represents the additional number of stack frames that you want saved and displayed. Note that each additional level of call stack that is stored requires a DWORD64 of space per call so these additional stack frames can soon add up.

Win32 Tools Library - 6.1.1

  • Added JetByteTools::Win32::MurMurHash2 by Austin Appleby. See http://murmurhash.googlepages.com/. This is used JetByteTools::Win32::CCallStack to provide a hash of the stack.

  • Updated JetByteTools::Win32::StackWalker to use the v10 (2009-11-01) version of Jochen Kalmbach’s code. See http://stackwalker.codeplex.com for details.

  • Fixed a ’lack of locking’ bug in JetByteTools::Win32::CCallTracker which caused problems during over-release reference dumps.

  • Added JetByteTools::Win32::ITrackReferences::TrackAllocationsFrom, JetByteTools::Win32::ITrackReferences::ExcludeAllocationsFrom and JetByteTools::Win32::ITrackReferences::TrackFromHere which allow you to restrict which socket or buffer allocators are tracked by the reference tracking code when it’s enabled. This can be very useful in reducing the runtime performance cost of enabling reference tracking.

I/O Tools Library - 6.1.1

  • Fixed a bug in JetByteTools::IO::CRotatingAsyncFileLog which could cause the date stamp for a log file to end up with a date of 16010101. See here http://www.lenholgate.com/archives/000880.html for more details.

  • Fixed a bug in JetByteTools::IO::CRotatingAsyncFileLog which caused the timestamp in the log to include 4 characters for the milliseconds rather than 3 resulting in 0999 rather than 999.

  • Changed how JetByteTools::IO::CBufferReferenceTracker works. You can now get it to include additional call stack context by defining JETBYTE_ADDITIONAL_BUFFER_TRACKING_CONTEXT (in Config.h) to the number of additional frames of context that you require.

Socket Tools Library - 6.1.1

  • Changed how JetByteTools::Socket::CSocketReferenceTracker works. You can now get it to include additional call stack context by defining JETBYTE_ADDITIONAL_SOCKET_TRACKING_CONTEXT (in Config.h) to the number of additional frames of context that you require.

OpenSSL Tools Library - 6.1.1

  • No changes.

SChannel Tools Library - 6.1.1

  • Fixed a bug in JetByteTools::SSPI::SChannel::CContext which would cause a small memory leak in derived classes (missing virtual destructor).

SSPINegotiate Tools Library - 6.1.1

  • No changes.

SSPI Tools Library - 6.1.1

  • No changes.

PerfMon Tools Library - 6.1.1

  • No changes.

Service Tools Library - 6.1.1

  • Fixed a bug with JetByteTools::Service::CServiceStatus::RegisterForDeviceNotification() and JetByteTools::Service::CServiceStatus::RegisterForPowerSettingNotification() so that they work when called in service debug mode. Note that since the service is running as a normal exe in service debug mode we can’t actually register for device and power notifications as we don’t have a valid handle to our service in the SCM. Instead we simply skip these calls and output some debug.

CLR Hosting Tools Library - 6.1.1

  • No changes.

Full details of the licensed version of the code are available here.

Full details of the free version of the code are available here.

No new documentation for this release.

Doxygen documentation for the latest release is available here.

If you’re an existing client and you’d like these changes let me know.