Monday, December 31, 2012

Rudiments - 0.40 is out

Rudiments 0.40 is now available.

This release fixes several obscure bugs and problems with the build process.

For many years the configure script would erroneously include "-pthread" in the compile commands on platforms that don't support it. That has been fixed.

-Werror has been added to default build as well and various issues revealed by it have been fixed.

The windows make.bat script has been refactored too and now supports both regular and CLR builds.

The following bugs have been fixed:

  • fixed hostentry::getAddressString() for numbers greater than 127
  • fixed bugs that could lead to a crash when using the hostentry class with NULL hostnames
  • fixed charstring::safeCopy to copy the NULL terminator
  • made charstring::copy NULL-safe
  • made crypt class salt NULL-safe
  • reads that error out with EAGAIN are treated as successful reads of 0 bytes now

It appears that some platforms (OpenBSD 4.9 for i386 at least) create sockets in non-blocking mode. This is not what a developer would generally expect, so some changes have been made to standardize this behavior.

  • all sockets are manually set to blocking mode after creation now
  • sockets created by accept() are set to the blocking/non-blocking mode of the socket that was accepted on