Releases: jfriesne/muscle
Releases · jfriesne/muscle
6.33 release
6.33 Released 2/25/2016
- When MUSCLE_USE_CPLUSPLUS11 is defined, the Queue class
no longer bothers resetting values in its internal array
to their default state, if ItemType is a trivial type. - When MUSCLE_USE_CPLUSPLUS11 is defined, the Hashtable class
no longer bothers resetting values in its internal array
to their default state, if their type (KeyType or ValueType)
is a trivial type. - When MUSCLE_USE_CPLUSPLUS11 is defined, the SanitySetupSystem
class constructor now does some basic sanity checks on the
std::is_trivial() method to make sure it is working as expected. - hexterm now prints time-since-previous-received-data whenever
it prints incoming data, for easier performance checking. - Added GetBuildFlags(), PrintBuildFlags() and LogBuildFlags()
functions to SystemInfo.h so that it's easy for a MUSCLE-based
executable to report the preprocessor flags it was built with.
This can be handy for debugging purposes. - muscled now reports its build-flags at startup, if is launched
with log level "debug" or higher (e.g. "displaylevel=debug"). - Added a WithInterfaceIndex() convenience method to the
IPAddressAndPort class. - Usage of the DetectNetworkConfigChangesSession class has
been simplified. In particular, it is no longer necessary
to subclass this class in order to use it; instead you can
now just have any of your existing session or factory subclasses
implement the new INetworkConfigChangesTarget interface, and
the DetectNetworkConfigChangesSession will call their
INetworkConfigChangesTarget methods when appropriate. - The Windows-only "console" command line argument now can take
an optional value; e.g. console=foo.txt will cause the program's
stdout and stderr output to be redirected to file foo.txt. - The Win32AllocateStdioConsole() function now takes an optional
argument, as described above. - hexterm now looks for a "nojoin" command line argument when a
multicast group is specified; if found, it will deliberately
not join the multicast group (and become a send-only UDP session)
o DetectNetworkConfigChangesSession::SetEnabled(false) now also
suppresses calls to ComputerIsAboutSleep() and ComputerJustWokeUp().
o The DECLARE_REFTYPES macro now specifies the muscle namespace
explicitly, to make it easier to use from other namespaces. - Fixed an underflow bug in LogHexBytes() and friends that would
cause 4 billion dashes to be printed if the title text was
too long. - hexterm.vcproj now includes the necessary shlwapi.lib dependency
6.32 Release
6.32 Released 12/3/2015
- Added support for a new compiler flag,
-DMUSCLE_RECORD_REFCOUNTABLE_ALLOCATION_LOCATIONS,
that makes it easier to track down the cause of
RefCountable objects not getting freed properly on
process exit. See BUILDOPTIONS.TXT for details. - Tweaked SetupSystem.cpp so that using it no longer
requires MiscUtilityFunctions.cpp to be compiled also. - The _childProcessCrashed flag is now reset by
WaitForChildProcessToExit() only when there is a child
process handle available to wait on. That way multiple
calls to WaitForChildProcessToExit() won't obliterate
the child-process-crashed information. - Under Windows, the default handled-signals set now
also includes CTRL_C_EVENT and CTRL_BREAK_EVENT, so
that when running "muscled.exe catchsignals", these
keystrokes can also be used to cleanly shut down the
muscled process.
6.31 Release
6.31 Released 8/27/2015
- The ChildProcessDataIO class now has a DidChildProcessCrash()
method that will return true iff WaitForChildProcessToExit()
detected that the child process exited due to an unhandled
signal rather than via a normal process termination. - In v6.30, the windows implementation of ChildProcessDataIO
would always hide the child process's windows, even in cases
where it was desirable for the child process's windows to be
visible. To avoid that misbehavior, the child process's windows
are now hidden only if the CHILD_PROCESS_LAUNCH_BIT_WIN32_HIDE_GUI
bit is set in the (launchBits) argument. - Some of the the DOxygen comments for enumerations in the
header files were not formed correctly, so the DOxygen
HTML pages would leave them undocumented. Fixed. - Fixed a compiler warning in MessageField::IsEqualTo().
6.30 Release
6.30 Released 8/11/2015
- The Message class now uses special-case variant logic for fields
that contain only a single value, so that in the common case
the allocation of an AbstractDataArray object is avoided. - Added a convenience overload of GetMessageFromPool() that
takes a ByteBufferRef as its argument. - Merged in Mika's patch to fix the _sntprintf_s() calls in
the Windows implementation of SysLog.cpp. - DetectNetworkConfigChanges.cpp would fail to compile under Windows
under some circumstances, due to unicode-string handling issues.
Fixed. - Added spaces to *_FORMAT_SPEC tokens in dataio/RS232DataIO.cpp
- Added missing namespace qualifiers to MCRASH() macro, so that it
can be called from another namespace. - Fixed a bug in the Hashtable class that could cause crashes
after a call to EnsureSize(0, true). - Message::Unflatten() now resizes the Message's entries-Hashtable
to be the exact size of the number of entries it will contain. - Added some #includes to the gz*.c zlib files so "implicit
function declaration" warnings are no longer emitted when
compiling under MacOS/X. - Fixed a static-initialization-ordering bug in the ObjectCounterBase
class that could cause it to try and lock an invalid Mutex during
process startup or shutdown. - Under Windows, use of the ChildProcessDataIO class could cause
an empty Console window to appear. That no longer happens.
6.23 release
6.23 Release 7/7/2015
- The StringMatcher class now has a IsPatternListOfUniqueValues()
method that returns true iff the that pattern is a comma-separated
list of non-wildcarded values. - NodePathMatcher::DoTraversalAux() was using a Queue as a cache,
which could be inefficient due to O(N^2) lookups in certain cases.
Replaced it with a Hashtable for better performance. - Optimized the NodePathMatcher algorithm to be more efficient
when node-paths that include clauses that are long lists of
comma-separated node names. - SharedFilterSessionFactory.cpp wouldn't compile if
-DMUSCLE_AVOID_IPV6 was specified on the compile line. Fixed.
6.22 release
6.22 Released 6/11/2015
- Added an IsWaitingForEvents() method to ReflectServer class,
so that a (user-supplied) watchdog thread can observe when the
ReflectServer is blocked waiting for I/O vs when it is doing
something. - Added Mika's vc++14 subdirectory, which contains Visual C++
project files for Visual Studio 2015. - DataNode::GetAncestorNode() now takes an optional second argument
that tells it what to return if the ancestor node isn't found.
o Added some more Cygwin/MinGW compatibility changes contributed
by Mika Lindqvist.
o Rewrote some of the node-traversal callback methods so that they
no longer pass an integer argument by casting it to (void *). - Tweaked various files to fix warnings reported by cppcheck 1.69.
- The stdout-display in qt_muscled wasn't read-only. Fixed.
6.21 release
6.21 Released 5/14/2015
o Merged in Mika Lindqvist's patch to make the StackWalker code
use less stack space.
o Merged in Mika Linkdqvist's patches for better Cygwin compatibility.
- Made the StackWalker code a bit more robust.
- Merged in Mika Lindqvist's patch to the VC++12 projects
to link debug builds against the MultiThreadedDebug
run time library rather than the MultiThreaded library. - Fixed a couple of const-correctness issues in the StackWalker code.
o Modified the Windows implementation of GetNetworkInterfaceInfos()
to not specify an interface index for IPv6 network device address
::1, as doing so causes UDP-packet-routing problems under Windows 7.
v6.12 release
6.12 Released 4/6/2015
- The Python message_transceiver_thread class will now
fall back to connecting via IPv4 if the supplied hostname
cannot be expanded to an IPv6 address (and vice versa). - Added a NotCopyable base class to various classes
(Socket, DataNode, AbstractReflectSession, etc) so that
the compiler will verify that they are not being copied. - The StringMatcher class now interprets any simple wildcard
string starting with a backtick character (`) as indicating
a non-simple regex string. That way it is possible to use
the standard regex functionality, if desired, in contexts
that otherwise provide no way to indicate that a string
is meant to be a full regex string and not a simple wildcard
string (e.g. in MUSCLE subscription strings) - Tweaked the codebase to get rid of a number of style
problems and minor errors that were reported by cppcheck. - Added a patch to the captive regex library to fix a
potential int32-overrun in regcomp(). Thanks to Mika
Lindqvist for supplying me with the patch. - Merged in some patches from Mika Lindqvist to avoid
some warnings when compiling in a 64-bit environment.
6.05 release
6.05 Released 6/27/2014
- Upgraded the captive zlib implementation to v1.2.8.
- Moved public repository from FreeCode to GitHub, because
FreeCode no longer accepts release announcements. - Renamed LICENSE.txt to LICENSE, since that's how GitHub
likes the license file to be named. - Merged in Mika Lindqvist's patch to avoid some truncation
warnings for strlen() calls under 64-bit Visual C++.