This page documents the changes added to SockHop in each successive release.
 
 
1.13Beta
  • Added support for setting thread priorities of SockHop threads.  Support is added via extra arguments to the class constructors of the SHDirectConnection class, extra callback methods in the SHAccessPolicy and SHDefaultAccessPolicy classes, and extra arguments to the SH_COMMAND_SETPARAMETER and SH_COMMAND_GETPARAMETER message types.
  • Added support for batch messaging and automatic message compression via zlib.  Support added in the same manner as described above for thread priority setting.
  • Fixed the CTRL-C problem that appeared in v1.12Beta.  Had to disable some code on the PPC version, though.
  • Broke binary compatibility with 1.12Beta and lower.  You'll probably need to recompile any SockHop apps.  :^(
1.12Beta
  • Rewrote the socket threading code so that it no longer uses signals or "force-closes" sockets while other threads are using them.  Instead, it uses a reference-counting scheme to know when all threads are done using the socket.  This method is a lot easier on the net server, which would sometimes crash before.
  • Fixed a nasty bug in the SHSessionAcceptor code that was causing about 20% of all connection attempts to fail.  Connecting is *much* more reliable now.
  • Moved the send and receive threads of the shConnection class into their own object, the shConnectionImp.  This allows the send and receive threads to continue working (temporarily) even after their owning shConnection has been destroyed.  Because of this, node destructors (etc) return much more quickly, as they no longer wait for all messages to be sent, etc. 
  • libsockhop.so now registers a function with atexit() that will block until all send/receive threads have exited.  This is necessary because send/receive threads do not take well to having the heap destroyed while they are working.  It can cause your program to appear to ignore ctrl-c keypresses, however--I will try to alleviate this annoyance in the future.
1.11Beta
  • Changed the licensing from GPL to LGPL so that non-GPL programs can link to libsockhop.so.
1.10Beta
  • Split off parts of the SHFileSpec class into the new SHFlavor class.  This modularization allows greater flexibility in downloading--now you can create an SHFileSpec that specifies (n) files per architecture, instead of just one.
  • Changed the SHDistributableObject class's GetAddOnSpec() method to return a status_t, to allow error handling.
  • Put libsockhop.so under the GNU Public License.  Note that only the source code and header files for the library itself are under the GPL; all other included files (including SockDemo, its add-ons, and all other test/demo/example material) are released to the public domain.
  • Added an fifth add-on, FlagWavingWorker, to the SockDemo package.  This one shows some fun animated pseudo-3D particle system eye candy using colored rectangles.
  • Munged the spelling of the SHW1ldPathSorter slightly in the HTML documentation, to avoid legal hassles from a similarly-named company (!) who didn't like the Web-search-engine results pollution.
  • Ported to BeOS R4
1.00Beta Initial beta release.  Stable for small numbers of connections, somewhat unreliable under heavy loads.  Can make net_server crash (try having SockDemo open 16 connections at once, for example).