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
inConfig.h
and disabled by defining them to0
; the default state if you do not do anything inConfig.h
is shown for each option: -
JETBYTE_USE_CAPTURE_STACK_BACK_TRACE
- enabled by default. Define to0
to prevent the use ofCaptureStackBackTrace()
when building for platforms later than Windows XP. Normally we assume thatCaptureStackBackTrace()
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 includeCaptureStackBackTrace()
and so our platform version check wrongly includes code that cannot build. -
JETBYTE_ADDITIONAL_BUFFER_TRACKING_CONTEXT
andJETBYTE_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 defineJETBYTE_ADDITIONAL_BUFFER_TRACKING_CONTEXT
and/orJETBYTE_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 aDWORD64
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
andJetByteTools::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 definingJETBYTE_ADDITIONAL_BUFFER_TRACKING_CONTEXT
(inConfig.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 definingJETBYTE_ADDITIONAL_SOCKET_TRACKING_CONTEXT
(inConfig.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()
andJetByteTools::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.