 2003-04-18 Al Riddoch <alriddoch@zepler.org>,
    - Add Skstream.pbproj to distribution
    - Reset interface version due to lib name change, increment version,
      add news item and release 0.2.4
 2003-04-17 James Turner <james@worldforge.org>
    - Add ProjectBuilder files for the stable branch. Incldues a
      target to build the 'ping' test utility, though it doesn't
      seem to work quite as expected.
 2003-04-16 Al Riddoch <alriddoch@zepler.org>,
    - Move sources into skstream subdir for portability,
      and fix up includes.
    - fix up rpm spec.
 2003-01-31 Al Riddoch <alriddoch@zepler.org>,
    - Convert to using pkg-config
 12/09/2002 Ron Steinke <rsteinke@w-link.net>,
    - created basic_socket, a virtual base class
      for basic_socket_stream and basic_socket_server,
      so that the polling code has a common base
      with getSocket() to access
    - created basic_socket_poll polling class
    - changed tcp_socket_stream::is_ready() to isReady()
      to match standards for function naming, left is_ready()
      as a wrapper of isReady() for compatibility
 2002-11-04 Al Riddoch <alriddoch@zepler.org>,
    - Add doxygen docs.
 20/28/2002 Michael Koch <konqueror@gmx.de>
    - Added support for GNU/Hurd.
    - Added man page for skstream-config.
    - Added support for NOCONFIGURE in autogen.sh
 10/14/2002 Malcolm Walker <malcolm@worldforge.org>
    - Added call to Sleep(0) in win32 nonblocking connect
 07/22/2002 Ron Steinke <rsteinke@w-link.net>,
    - changed sizeof(sockaddr) to sizeof(sockaddr_in) in
      several locations, so that we pass the correct size
      of in_peer and out_peer in socketbuf
    - reordered initializers in socketbuf constructors
      to match their declaration order in the class
 07/21/2002 Al Riddoch <alriddoch@zepler.org>,
    - configure.in: Added --enable-debug option for debug build,
      increment version and interface version due to changes, add
      news item, and release 0.2.4.
 07/16/2002 Dan Tomalesky <grim@xynesis.com>
    - skstream.cpp: added a small fix to a bug with is_ready.  wasn't
      compiling on linux and seems code was wrong in the select because it was
      doing |= to the select() instead of != (i.e., if it doesn't return 1,
      there is no ready socket or an error)
 07/15/2002 Al Riddoch <alriddoch@zepler.org>,
            Malcolm Walker <malcolm@worldforge.org>
    - skstream.cpp: Handle nonblocking connect in win32
		- fix call in is_ready() for TCP nonblocking connect
    - skstream.h: Include correct streambuf header on Linux.
 07/03/2002 James Turner <james@worldforge.org>
	-Added configuration case for Darwin / OS-X
	-Fixed Rsteinke's changes to use typedefs for socklen / errnum
 06/26/2002 Michael Koch <konqueror@gmx.de>
    -Install headers into $(includedir)/skstream
    -Simplified installation of doc files
 06/22/2002 Al Riddoch <alriddoch@zepler.org>,
    -Removed "using namespace std" from header.
 06/11/2002 Ron Steinke <rsteinke@w-link.net>,
    -Added a timeout version of the tcp_socket_stream
     constructor, which wraps the timeout version
     of open()
 06/11/2002 Ron Steinke <rsteinke@w-link.net>,
    -Added an optional "milliseconds" argument to
     tcp_socket_stream::is_ready(), to take advantage
     of the timeout in select()
 06/11/2002 Ron Steinke <rsteinke@w-link.net>,
    -Modified getSocket() so you can poll on the writability
     of a tcp_socket_stream during a nonblocking connect,
     instead of calling is_ready() in a timeout. You still
     have to call is_ready() when the poll returns.
 06/11/2002 Ron Steinke <rsteinke@w-link.net>,
    -Fixed many bugs in nonblocking tcp socket connect code
 2002-06-10 Al Riddoch <alriddoch@zepler.org>
    -Add generated rpm spec and sort out interface versioning. Install docs.
 05/27/2002 Michael Koch <konqueror@gmx.de>
    -Add support for FreeBSD.
 05/20/2002 Ron Steinke <rsteinke@w-link.net>,
            Malcolm Walker <malcolm@worldforge.org>
    -Add code to support noblocking connect for TCP socket streams.
     Bumped version to 0.2.3.
 04/08/2002 Malcolm Walker <malcolm@worldforge.org>, 
            Martin Pollard <xmp@blueyonder.co.uk>
    -Moved code out of skstream.h and into skstream.cpp for
     basic_socket_stream constructors and methods.
    -Renamed CHANGELOG to CHANGELOG.FreeSockets to stop filename clash on
     lame filesystems
    -Added MS Visual C++ project files to VisualC directory.
 03/04/2002 Dan Tomalesky <grim@xynesis.com>
    -Added $ACLOCAL_FLAGS to aclocal call in autogen.sh
 03/02/2002 Dan Tomalesky <grim@xynesis.com>
    -Updated Makefile.am to have the various EXTRA_DIST stuff needed in the
     tar ball.
    -Fixed the includes for the tests so that they aren't installed when doing
     make install, but are in the dist file.
    -Adding TODO so that make dist is happy (nothing in it though)
    -Added acinclude.m4 with the cppunit m4 in it so that people without
     cppunit can still autogen/configure (I see your point now James :-)
    -Adding ChangeLog, NEWS, and README which are requirements for doing
     automake's make dist.  old CHANGELOG has been broken into README and
     ChangeLog.
 03/01/2002 Dan Tomalesky <grim@xynesis.com>
    -Pushed the version to 0.2.2 so that people building with 0.2.1 know that
     they don't have can_accept() in tcp_socket_server
    -changed can_accept's timeval to be all 0, so that it is just a quick
     poll and returns immediately (Thanks to alriddoch for the suggestion)
    -modified the ugly switch block I was using to print out error message
     names to use strerror (Thanks to James for that one)
 02/26/2002 Dan Tomalesky <grim@xynesis.com>
    -added test cases for skserver and friends
    -adding .cvsignore files so that it doesn't mess with non-cvs files anymore
    -in skserver.cpp and skstream.cpp, in the close() methods, I commented out 
     the return; in the error part of the shutdown() call because it is 
     possible that a socket can exist without it actually having been used, 
     so this could error out on those cases and the socket is never actually 
     closed.
    -in skserver.h, added can_accept() to tcp_socket_server so that it can be
     checked to see if the server socket has any connections available, so that
     accept() can then be called. (if it returns false, if accept is called, 
     it will block until a connection is made)
    -removed the #include <iostream> from skserver.h and skstream.h as they are
     not actually needed for any of the code. (else it comes in from some other
     include, I'm not positive)
    -Made some formatting changes in skserver.h along the same lines as I have
     been doing throughout the code.
    -added testClose() to basicskstreamtest.
    -changed the socket created in basicskstreamtest from SOCK_STREAM to 
     SOCK_DGRAM though it doesn't make any difference what so ever in the
     testing.
    -added the skservertests into the test runner.
 02/23/2002 Dan Tomalesky <grim@xynesis.com>
    -added in CVS logging variable so that changes show up in modified files
     This will help keep changes made by worldforge in each file that is 
     changed as required by the GPL.
    -changed some parameter variables to have better meaning. 
     (ad -> address, etc.)
    -added some code into tcp_sk_stream::open so that it calls setLastError()
     when the connection fails.
    -Added some comments into skstream.h to better describe SOCKET_TYPE as 
     there can be some confusion between what it is actually for 
     (pointer/file descriptor/windows cludge of the socket) and the various 
     types of sockets (tcp, udp, raw, etc)
    -changed some more formatting for readability.
    -uncommented some commented out code in skstream.h so that the sync() 
     method returns 0 on the else, rather than not returning anything.
    -added some code into setBroadcast() so that setLastError() is called
     if it fails to perform the getsocketopt().
    -modified the test/Makefile.am to remove the header files from the SOURCES
     as the .h files do not seem to affect the build.
    -updated all the current test so that they use a socket instead of the
     absolutely wrong stuff I was doing before.
    -added tests for tcp, udp, and raw skstreams child classes.
 02/20/2002 Dan Tomalesky <grim@xynesis.com>
    -added a new test case header for basic_socket_streams
    -made a mod to basic_socket_stream::setOutpeer(sockaddr_in&)
     seemed to me it had an erroneous ! in the statement
 02/19/2002 Dan Tomalesky <grim@xynesis.com>
    -changed socketbuf(int, unsigned, unsigned) to have variable names
     so it is easier to read in the declaration.
    -Added License header into skstream.h
    -Added cppunit test class and Auto* for supporting it. 
       (doesn't do anything yet)
 01/07/2002 Krystian G Bates
	Removed the code in socketbuf::sync() that caused both input and output 
	buffers to be emptied on `<< flush'
 01/09/2001 - RGJ
    Added the function timeout(), which returns true if a timeout has occured.
    It also clears the state bits of the stream so it can send/received after
    a timeout is detected. If badbit is set, the stream still cannot send and/or
    receive.
 12/28/2000 - RGJ
    FreeSockets version 0.3 released under GNU LGPL License.
 11/27/2000 - RGJ
    Changed constructors of nearly all classes.
    Now the size of the buffers may be defined.
    Added support for RAW sockets.
 11/24/2000 - RGJ
    Added a namespace (FreeSockets) to hold:
      - Enumeration IP_Services: define common IP ports used.
      - Enumeration IP_Protocols: define some avaiable protocols.
 11/23/2000 - RGJ
    Class hierarchy was redesigned.
    Version 0.2 released.
  9/20/2000 - RGJ
    Added support for UDP server sockets .
    Added a stream manipulator to set remote host.
  9/15/2000 - RGJ
    Added support for client UDP sockets.
  8/24/2000 - RGJ
    Added timeout control using select().
  8/23/2000 - RGJ
    Completed port to BSD Sockets(*NIX).
  8/3/2000 - RGJ
    Added support for server sockets.
    Added class basic_protocol that can be used to create multithreaded
    servers. FreeThreads(http://fly.to/rafasgj) are used to provide an
    object oriented portable multithreading API.
  7/30/2000 - RGJ
    First release of FreeSockets(v 0.1).
    Support for client sockets.
    Only Windows plataform supported.

Contact Information:
  Feel free to send comments, suggestions or bug reports by e-mail to
    Rafael Guterres Jeffman <rafasgj@exatas.unisinos.br>

  I use only GCC under Linux, Windows and BeOS and Borland's Free C++
  Compiler under Windows. Since, these are the only plataforms/compilers
  I can help with.
  I DO NOT(and certainly have no plans to) use Microsoft's Visual C++.
  Have fun!
  And visit GOBO, o Invariante at http://eden.cscience.org/~lode/gobo).

