2012-11-06  Al Riddoch  <alriddoch@googlemail.com>

	* Support has been added for resolving addresses separately from
	  socket options, handling multiple results, and iterating.

	* Legacy code for systems without getaddrinfo has been removed.

	* Support has been added for various socket options.

2011-02-13  Al Riddoch  <alriddoch@googlemail.com>

	* skstream/skstream.cpp, skstream/skstream.h: A number of bugs and
	  issues with non-blocking connect have been fixed.

2010-08-02  Al Riddoch  <alriddoch@googlemail.com>

	* Release 0.3.7, interface version 5.0.0.

2009-03-23  Al Riddoch  <alriddoch@googlemail.com>

	* skstream/skstream.h, skstream/skstream.cpp: Fix uses of EOF
	  to use traits_type::eof() instead.

2009-01-28  Alexey Torkhov  <atorkhov@gmail.com>

	* skstream/skstream.h: Fix issue when EOF is undefined without explicitly
	  including stdio with recent compilers.

2009-01-28  Al Riddoch  <alriddoch@zepler.org>

	* test/basicskstreamtest.h: Fix an issue with an ambiguous constructor
	  call thrown up by recent compilers. Strip out the RCS logging
	  tag.

2008-11-04  Al Riddoch  <alriddoch@zepler.org>

	* ping/ping.cpp: Add the C includes required for strtoul(),
	  exit(3) and strerror() which should fix problems with more
	  recent compilers.

2007-04-28  Al Riddoch  <alriddoch@zepler.org>

	* skstream/skserver.cpp, skstream/skstream.cpp: Add includes required
	  for recent compilers which include less stuff implicitly in
	  standard headers.

2007-10-02  Al Riddoch  <alriddoch@zepler.org>

	* skstream/skstream.cpp: Fix the method definition for
	  unix_socket_stream::open().

2007-10-02  Al Riddoch  <alriddoch@zepler.org>

	* skstream/skstream_unix.h, skstream/skstream.cpp: Clean up the
	  code for unix sockets, and add an interface for setting up socketpair
	  style streams.

2007-09-22  Al Riddoch  <alriddoch@zepler.org>

	* test/basicskstreamtest.h, test/skservertest.h,
	  test/skstreamtestrunner.cpp, test/socketbuftest.h:
	  Remove some tests for methods that no longer exist in the given
	  classes.

2007-09-22  Al Riddoch  <alriddoch@zepler.org>

	* Doxyfile: Update to a more recent version.

	* skstream/skserver.h, skstream/sksocket.h: Add some quick
	  doc strings to classes, so the inheritance tree is apparant to
	  doxygen.

2007-09-02  Al Riddoch  <alriddoch@zepler.org>

	* configure.ac: Remove the debian subdir from distribution.

2007-05-28  Al Riddoch  <alriddoch@zepler.org>

	* skstream/skstream.cpp: A much safer way of ensuring the address
	  length is correct, using sizeof.

2007-05-28  Al Riddoch  <alriddoch@zepler.org>

	* skstream/skstream.cpp: It is not safe to assume the maximum
	  path length of a unix socket is 108. On OSX it is 104. On some
	  systems it is defined, on others we have to assume 104.

2007-04-12  Al Riddoch  <alriddoch@zepler.org>

	* configure.ac: Clean up the way debian/rules permissions are set so
	  they cause less breakage.

2007-04-12  Al Riddoch  <alriddoch@zepler.org>

	* configure.ac: Add a more detailed test so the inlined version
	  of gai_strerror provided by more recent versions of mingw can
	  be used.

2006-12-17  Al Riddoch  <alriddoch@zepler.org>

	* skstream/skstream.cpp, skstream/skstream.h, skstream/skstream_unix.h:
	  Add some inline documentation comments for Doxygen. Switch some
	  iostream related types to use the typedefs made available by
	  the iostream library.

2006-12-14  Al Riddoch  <alriddoch@zepler.org>

	* Makefile.am: Remove pc.in files from EXTRA_DIST, as autotools
	  distribute them anyway. Include Doxyfile in the distribution.

	* Doxyfile: Remove missing footer directive.

2006-12-09  Al Riddoch  <alriddoch@zepler.org>

	* configure.ac: Ensure debian/rules is executable.

	* debian/control.in: Fix the name of the debug package.

	* debian/libskstream-0.3-dev.install: Fix the header order.

	* libskstream-0.3-4-dbg.install, libskstream-0.3-4.install:
	  Rename install files to the correct interface version.

2006-12-09  Al Riddoch  <alriddoch@zepler.org>

	* debian: Experimental package files for creating .debs.

2006-10-14  Al Riddoch  <alriddoch@zepler.org>

	* skstream/skstream.h, skstream/sksocket.h: Move the IP
	  protocol enumerations to the generic socket header, as
	  they can be used in either streams or servers. Remove
	  service port numbers, as we should not be hardcoding
	  them. We should be looking them up from the OS.

	* ping/ping.cpp: Add our own variable for the ping service
	  as the headers no longer provide it.

2006-10-14  Al Riddoch  <alriddoch@zepler.org>

	* Release 0.3.6, interface version 4.0.0.

2006-10-12  Al Riddoch  <alriddoch@zepler.org>

	* sasproto.h, skpoll.cpp, skpoll.h, skserver.cpp, skserver.h,
	  skserver_unix.h, sksocket.cpp, sksocket.h, skstream.cpp,
	  skstream.h, skstream_unix.h: Update the copyright statements
	  with current maintainer.

2006-10-12  Al Riddoch  <alriddoch@zepler.org>

	* acinclude.m4: Fix quoting in autoconf macros.

2006-10-11  Al Riddoch  <alriddoch@zepler.org>

	* configure.ac: Add check for gai_strerror, as it is missing on some
	  platforms, particularly windows. Specify the Windows API version
	  as 0x501 so we get the XP features.

	* skstream/skstream.cpp, skstream/skserver.cpp: Provide a version
	  of gai_strerror() on platforms that use getaddrinfo, but don't
	  have it.

2006-10-10  Al Riddoch  <alriddoch@zepler.org>

	* skstream/sksocket.cpp: startup() on win32 can no longer use
	  LastError member, as its now static. Use a local instead.

2006-04-01  Al Riddoch  <alriddoch@zepler.org>

	* skstream/sksocket.h, skstream/sksocket.cpp: Move base socket
	  class into its own file, and move some code common to server
	  and stream sockets into this class.

	* skstream/skstream.h, skstream/skstream.cpp: Get rid of peer
	  addresses in socket buffer class, and only add it to the
	  datagram socket buffer class, as its meaningless in stream
	  sockets. Add new base class for datagram iostream classes
	  with peer related functionality. Add functionality to
	  bind datagram sockets to a local address and port.

	* skstream/skserver.h, skstream/skserver_unix.h, skstream/skserver.cpp:
	  Clean up server sockets, relying more on functionality in socket
	  base class, and getting rid of obsolete code.

	* configure.ac: Increment version and interface version.

2005-12-02  James Turner  <james@worldforge.org>

	* Add X-Code 2.0 project file (ProjectBuilder project will be deleted
	  shortly).

2005-10-03  Al Riddoch  <alriddoch@zepler.org>

	* configure.ac: Add configure parameter --enable-getaddrinfo which
	  can be disabled to build a binary that will run on older windows.
	  Make sure all tests will work ok with -Werror set.

2005-09-15  Al Riddoch  <alriddoch@zepler.org>

	* Release 0.3.5, interface version 3.0.0.

2005-09-15  Al Riddoch  <alriddoch@zepler.org>

	* skstream/sasproto.h, skstream/skpoll.cpp, skstream/skpoll.h,
	  skstream/skserver.cpp, skstream/skserver.h,
	  skstream/skserver_unix.h, skstream/skstream.cpp,
	  skstream/skstream.h, skstream/skstream_unix.h,
	  skstream/skstreamconfig.h.in: Remove duplicated changelog from
	  the source files, and add a reference to this file instead.

	* Increment version to 0.3.5 and interface version to 3.0.0.

2005-09-07  Al Riddoch  <alriddoch@zepler.org>

	* skstream/skstream.cpp: Fix a uninitialised reference being passed
	  to the std::iostream parent contructor of basic_socket_stream.

2005-09-06  Al Riddoch  <alriddoch@zepler.org>

	* skstream/skstream.h, skstream/skstream.cpp: Fix arguments to
	  socketbuf::setbuf so they really match the function it should
	  be overloading. Add the required return value, and return this.

2005-07-07  Al Riddoch  <alriddoch@zepler.org>

	* skstream.spec.in: Clean up spec.

	* NEWS: Update news.

	* configure.ac: Increment version.

	* Release 0.3.4, interface version 2.0.0.

2005-07-01  Al Riddoch  <alriddoch@zepler.org>

	* skstream/skstream.h, skstream/skstream.cpp: Make functions
	  non-virtual if they don't require it. Get rid of unused return
	  value for setbuf(). Move some functionality into
	  socketbuf::setSocket(). Make sure socket is valid before getting
	  its peer name.

2005-04-30  Al Riddoch  <alriddoch@zepler.org>

	* configure.ac: Update autoconf usage to be more correct.
	  Get rid of SKSTREAM_VERSION.

	* NEWS: Add last release for completeness.

2004-03-03  Al Riddoch  <alriddoch@zepler.org>

	* skstream/skstream.h, skstream/skstream.cpp: Add a virtual
	  destructor to basic_socket interface.

2004-01-14  Al Riddoch  <alriddoch@zepler.org>

	* test/basicskstreamtest.h: Socket buffers are now automatically
	  deleted by the socket streams which own them.

2004-12-31  Al Riddoch  <alriddoch@zepler.org>

	* skstream.spec.in: Update spec with License URL Package Vendor
	  and Distribution tags.

2004-12-06  Al Riddoch  <alriddoch@zepler.org>

	* skstream/skstream.cpp, skstream/skserver.cpp: Fix an issue with
	  shutdown arguments being different in windows.

2004-11-30  Al Riddoch  <alriddoch@zepler.org>

	* Release 0.3.3, interface version 1.0.0.

2004-11-29  Al Riddoch  <alriddoch@zepler.org>

	* skstream/skstream.h, skstream/skstream.cpp: Inline operator!
	  and timeout as they don't need to be virtual. Don't inline
	  open() as its too big. Make setOutpeer return void, as the returned
	  bool value was useless and ignored.

2004-11-24  Al Riddoch  <alriddoch@zepler.org>

	* skstream/skstream.cpp, skstream/skstream.h, skstream/skstream_unix.h:
	  Re-work the way stream buffer objects are created so they are
	  allocated in the super class using new, and passed to the base
	  where they are deleted in the destructor. This ensures that the
	  stream buffer is never used un-initialised, or after destruction.
	  Move some lengthy constructors into the .cpp file.

	* configure.ac: Increment version and interface so applications can
	  ensure they get the updated API.

2004-11-23  Al Riddoch  <alriddoch@zepler.org>

	* skstream/skserver.cpp, skstream/skserver.h,
	  skstream/skstream.cpp, skstream/skstream.h:
	  Re-purpose the shutdown() method of various classes
	  so it no longer closes the socket. This makes it more consistent
	  and sorts out some issues with using epoll() with skstream.
	  Make sure close() is called in the right places in destructors.
	  Fix a bug in the Win32 build where WSACleanup() was getting
	  called at utterly the wrong time.

2004-09-29  Al Riddoch  <alriddoch@zepler.org>

	* Move to using configure.ac with updated contents.

	* Create new README and move old one to README.FreeSockets.

	* Release 0.3.2, interface version 0.0.0.

2004-06-06  Al Riddoch  <alriddoch@zepler.org>

	* Fix devel dependencies in rpm spec.

2004-06-03  James Turner  <james@worldforge.org>

	* XCode project updates; remove pbxuser file from CVS, shouldn't
	  be checked in.

 2004-05-13 Al Riddoch  <alriddoch@zepler.org>
    - skstream/skserver_unix.h: Remove can_accept() from unix_socket_server
      as its not implemented and the version in the base class should be used.
 2003-12-19 Al Riddoch  <alriddoch@zepler.org>
    - Remove Serial from rpm spec as it is not required, and messes up
      deps.
    - Release version 0.3.1
 2003-12-08 Al Riddoch <alriddoch@zepler.org>
    - skstream/skserver.cpp: Correctly use SOCKET_ERROR instead of
      INVALID_SOCKET when checking return value of syscalls.
    - Add AC_CANONICAL_SYSTEM macro.
 2003-11-15 Al Riddoch <alriddoch@zepler.org>
    - Fix license typo in the rpm spec.
 2003-09-29 Al Riddoch <alriddoch@zepler.org>
    - Release version 0.3.0
 2003-09-29 Al Riddoch <alriddoch@zepler.org>
    - Add arch dependent header to rpm spec.
 2003-09-29 Al Riddoch <alriddoch@zepler.org>
    - Add libws2_32 which is required for getaddrinfo and friends under
      windows.
    - ping/ping.cpp: Move signal.h so it is available in windows build.
    - test/skstreamtestrunner.cpp: Make the test always return success so
      that distcheck rule works. The test only succeeds if its run as root
      and the echo service is running, both of which are undesirable.
 2003-09-28 Al Riddoch <alriddoch@zepler.org>
    - skstream/skstream.h: Add accessors so address sizes in buffer class
      are accessible from outside stream class.
    - ping/ping.cpp: Re-work code for handling conversion of addresses
      to presentation format for protocol independance.
 2003-09-27 Al Riddoch <alriddoch@zepler.org>
    - test/childskstreamtest.h: Get rid of some of the java-isms, and
      handle some failures a little more cleanly. Fix the udp test.
    - test/skstreamtestrunner.cpp: Ensure that the tests exit status
      reflects whether it passes or fails.
    - Fix Makefile.am so tests are actually run.
 2003-09-27 Al Riddoch <alriddoch@zepler.org>
    - skstream/skstreamconfig.h.windows: Update headers and defines
      to build latest code on MSVC
 2003-09-26 Al Riddoch <alriddoch@zepler.org>
    - Add option to get streams remote details as reverse lookup, rather
      than just presentation form.
 2003-09-26 Al Riddoch <alriddoch@zepler.org>
    - Write elaborate tests to pick up socket calls when building for windows.
    - ping/ping.cpp: Remove unused variable.
 2003-09-26 Al Riddoch <alriddoch@zepler.org>
    - Write some tests to pick up the socket and name resolver libs on
      System V.
    - Clean up handling of libs required to get socket calls in general.
    - ping/ping.cpp, skstream/skserver.cpp: Add missing stdio include.
    - skstream/skserver.h: Remove non-required string.h include.
    - skstream/skstream.cpp: Add mising stdio include, and clean up sprintf()
      usage.
 2003-09-26 Al Riddoch <alriddoch@zepler.org>
    - skstream/skstream.cpp: Add code that handles converting service to
      presentation format in a protocol independant way.
 2003-09-26 Al Riddoch <alriddoch@zepler.org>
    - skstream/skstream.h: Add accessors for address size members.
    - ping/ping.cpp: Clean up use of libc and system calls.
    - skstream/skstream.cpp: Clean up handling socket address sizes
      when setting socket by descriptor in the buffer objects.
      Add code that handles converting address to presentation format
      in a protocol independant way.
 2003-09-25 Al Riddoch <alriddoch@zepler.org>
    - skstream/skpoll.cpp, skstream/skserver.cpp, skstream/skstream.cpp:
      Finish off fully qualifying all libc and system calls as being
      explicitly in the global namespace.
 2003-09-25 Al Riddoch <alriddoch@zepler.org>
    - Remove messy attempt to handle IPv6 addresses without getaddrinfo
 2003-09-25 James Turner <james@worldforge.org>
    - skstream/skstream.cpp: Fully qualify all libc and system calls as
      being explicitly in the global namespace.
 2003-09-24 James Turner <james@worldforge.org>
    - skstream/skstreamconfig.h.pbx: define HAVE_GETADDRINFO and HAVE_IN_ADDR_T
      for ProjectBuilder (framework) builds on OS-X, since OS-X supports
      these features.
 2003-09-24 Al Riddoch <alriddoch@zepler.org>
    - skstream/skstream.cpp: Implement non-blocking connect with addrinfo list.
 2003-09-24 Al Riddoch <alriddoch@zepler.org>
    - Typo in in_addr_t check fixed.
    - skstream/skstream.cpp: Missed out typedef keyword fix.
 2003-09-24 Al Riddoch <alriddoch@zepler.org>
    - skstream/skstream.cpp: Add check, and fallback definition for
      in_addr_t.
 2003-09-24 Al Riddoch <alriddoch@zepler.org>
    - skstream/skstream.h, skstream/skstream.cpp: Re-write connecting
      code for IP datagram and stream sockets so they try each of the
      results from getaddrinfo in turn. Needs work on non-blocking
      sockets.
 2003-09-23 Al Riddoch <alriddoch@zepler.org>
    - skstream/skserver.cpp: Modify bind code that uses getaddrinfo
      so it tries each of the results in turn until one works, instead
      of bailing out on the first failure.
 2003-09-23 Al Riddoch <alriddoch@zepler.org>
    - ping/ping.cpp: Add include required since headers were simplified.
 2003-09-23 Al Riddoch <alriddoch@zepler.org>
    - skstream/skserver.h: Make service an int in setService() as it always
      is elsewhere.
    - skstream/skserver.h, skstream/skserver.cpp: Make open() methods return
      true on success, and false on failure.
    - skstream/skserver.h, skstream/skserver.cpp: Add new method for
      creating and binding to a socket, to avoid duplicating code.
 2003-09-06 Martin Pollard <circlemaster@blueyonder.co.uk>
    - configure.in: changed win32 code to use winsock2.h instead of winsock.h.
    - skstream/skstream.h: added a guard #ifndef SOCKET_ERROR to it's
      definition.
 2003-08-23 Al Riddoch <alriddoch@zepler.org>
    - skstream/skstream.h, skstream/skstream.cpp: Add extra argument
      to dgram_streambuf::setTarget() so protocol can be passed in.
      Add #warnings if the old non getaddrinfo code is being used.
 2003-08-23 Al Riddoch <alriddoch@zepler.org>
    - skstream/skstreamconfig.h.in, skstream/skstream_unix.h,
      skstream/skstream.h, skstream/skstream.cpp,
      skstream/skserver_unix.h, skstream/skserver.h, skstream/skserver.cpp:
      Remove as much platform sensitive code from the headers as possible,
      and simplify the generated header. Improve formatting and header
      guards for readability.
    - skstream/skserver_unix.h: Add a new constructor for unix_socket_server
      so it can be instanced without already knowing the details of the
      service.
 2003-08-23 Al Riddoch <alriddoch@zepler.org>
    - skstream/skstream.h, skstream/skstream.cpp: Modify udp_socket_stream
      constructor so that it does not create the socket immediatly.
    - skstream/skstream.cpp: Re-write dgram_socketbuf::setTarget() so it
      uses getaddrinfo to create the socket, and get the address in
      a protocol independant way.
 2003-08-23 Al Riddoch <alriddoch@zepler.org>
    - skstream/skserver.h, skstream/skserver_unix.h: Add default constructor
      to tcp_socket_server, and make single argument constructors explicit.
    - skstream/skserver.cpp: Use AI_PASSIVE with getaddrinfo() to make listen
      sockets accept any connection.
 2003-08-23 Al Riddoch <alriddoch@zepler.org>
    - skstream/skserver.cpp: Use getaddrinfo to create server sockets
      in a protocol independant way.
 2003-08-23 Al Riddoch <alriddoch@zepler.org>
    - skstream/skstream.cpp: Use getaddrinfo to handle the port number.
 2003-08-23 Al Riddoch <alriddoch@zepler.org>
    - skstream/skstream.cpp: Formating changes for clarity.
 2003-08-17 Al Riddoch <alriddoch@zepler.org>
    - Re-order contents of config header so it works on systems
      which require more headers for socklen_t.
 2003-08-16 Al Riddoch <alriddoch@zepler.org>
    - Fix packaging of skserver_unix.h.
 2003-08-09 Al Riddoch <alriddoch@zepler.org>
    - Fix conditional building of tests.
 2003-08-08 Al Riddoch <alriddoch@zepler.org>
    - skstream/skstream.cpp, skstream/skstream_unix.h: Include skstream
      header with its fully qualified name for compatability, and move
      the unix system header out of the header into the cpp file.
    - skstream/skserver.cpp, skstream/skserver.h: Add new base class for ip
      socket types, and put in the ip address related functionality into it,
      so basic class can be used as a base for unix socket class.  Move
      can_accept() into the base class as it applies to any listen socket.
    - skstream/skserver_unix.h, skstream/skserver.cpp: Add a class for
      unix listen sockets.
 2003-07-30 Al Riddoch <alriddoch@zepler.org>
    - skstream/skserver.cpp, skstream/skserver.h, skstream/skstream.cpp,
      skstream/skstream.h, skstream/skstream_unix.h: Move virtual
      function implementations into .cpp files.
 2003-07-25 Al Riddoch <alriddoch@zepler.org>
    - Don't build or run the unit tests if CppUnit is not found.
 2003-07-24 Al Riddoch <alriddoch@zepler.org>
    - Add a more complex test for closesocket for mingw32.
 2003-07-23 Al Riddoch <alriddoch@zepler.org>
    - skstream/skstream.h: Fix header for windows build.
 2003-07-23 James Turner <james@worldforge.org>
    - Comitting long-standing ProjectBuilder file updates, 
      builds a nice skstream.framework under OS-X. Can also
      build the 'ping' demo, though that has issues generally.
 2003-07-23 Al Riddoch <alriddoch@zepler.org>
    - skstream/skstreamconfig.h.pbx, skstream/skstreamconfig.h.in,
      skstream/skstreamconfig.h.windows: Removed some defines which
      are the same on all platforms, and put them in the main header.
      Avoid streambuf header as it varies on some systems, and rely
      on iostream instead.
    - Remove the streambuf header test.
    - skstream/skstream.h: Remove the old platform specific code,
      take on some changes from the skstreamconfig header, and clean
      up some comments.
    - skstream/skstream.cpp: Re-write the resolver code for platforms
      without getaddrinfo() so it is cleaner, and covers more cases.
 2003-07-03 Al Riddoch <alriddoch@zepler.org>
    - Update rpm spec to be cleaner, and make the technical sections
      more generic.
 2003-06-23 Al Riddoch <alriddoch@zepler.org>
    - Update Makefile.ams so distcheck works.
 2003-05-06 Al Riddoch <alriddoch@zepler.org>
    - skstream/skstream.h, skstream/skstream.cpp, skstream_unix.h:
      Re-work basic_socket_stream so it can have either stream or datagram
      buffers.
    - ping/ping.cpp, ping/ping.h, test/basicskstreamtest.h,
      test/childskstreamtest.h, test/skservertest.h: Get the tests and examples
      building again.
 2003-05-04 James Turner <james@worldforge.org>
    - Updated OS-X projectbuilder files, including adding an
      skstreamconfig.h.pbx config file, which is copied to
      the framework prior to the build (by a ShellScript build phase).
 2003-05-04 Al Riddoch <alriddoch@zepler.org>
    - Sort out nasty hard tabs from address checks.
    - Start work on updating the checks.
 2003-05-04 James Turner <james@worldforge.org>
    - Fix the Unix and IPv6 tests under OS-X (autoconf build), OS-X
      needs <sys/types.h> included before any other header for
      all manner of system headers.
 2003-05-04 Al Riddoch <alriddoch@zepler.org>,
    - Fix unix and IPv6 checks so they include the right headers.
 2003-05-04 Al Riddoch <alriddoch@zepler.org>,
    - skstream/skstream.cpp: Add a check to detect IPv6 sockaddr in
      headers, and treat address explicitly as an IPv6 address if
      it is.
 2003-05-04 Al Riddoch <alriddoch@zepler.org>,
    - Add a second pkgconfig file for apps that need unix socket support.
    - Rename sksystem.h as skstreamconfig.h, and put it in an architecture
      dependent subdir. Modify pkgconfig files to handle this.
    - Handle errors in a more general way to reduce the number
      of places where pre-processor conditionals are required.
    - Remove some redundant code for dealing with win32 that has
      now been superceded.
 2003-04-22 Al Riddoch <alriddoch@zepler.org>,
    - Add configure checks and support for protocol family independant
      socket address functions, so we can support IPv6 as well as IPv4.
 2003-04-16 Al Riddoch <alriddoch@zepler.org>,
    - Fix up includes so they work properlly
 2003-04-16 Al Riddoch <alriddoch@zepler.org>,
    - Move source into subdir for portability
 2003-04-09 Al Riddoch <alriddoch@zepler.org>,
    - Fix problem caused by ending variable name with _HEADERS.
 2003-03-18 Al Riddoch <alriddoch@zepler.org>,
    - Improve safety of some constructors, and move IP (host and port)
      related functions into apropriate classes.
    - Add in unix sockets, based on a configure check.
 2003-03-18 Al Riddoch <alriddoch@zepler.org>,
    - Remove legacy skstream-config script to avoid clash with stable version.
 2003-03-18 Al Riddoch <alriddoch@zepler.org>,
    - Increment API to version 0.3, and reset interface version, so
      this version can co-exist with 0.2.x
 2003-03-16 Al Riddoch <alriddoch@zepler.org>,
    - skstream.cpp: Fix problem with virtual method being called
      after destructor.
 2003-03-14 Al Riddoch <alriddoch@zepler.org>,
    - skstream.h, skstream.cpp: Re-work sockbuf class so it is
      not specific to any one type of socket. Remove inet
      functionality from base classes. Derive new buffer
      classes for stream and datagram sockets, and use
      stream version in current socket classes. This should
      be considered work in progress. Do not port your code.
 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.
 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).

