   +===================================================================+
   ||                                                                 ||
   ||          Simple Sockets Library Differences Document            ||
   ||                 Dr. Charles E. Campbell, Jr.                    ||
   ||                                                                 ||
   +===================================================================+

Version 2.06:
	1. spmtable improved so that it will not hang on non-responding
	   PortMaster (and will give messages).
	2. Sopen_clientport had unnecesary copying removed: hostenstruct= *hostentptr;

   ---------------------------------------------------------------------   

Version 2.05:
    1. Sopen/SSLNEEDTOSHAREPM problem fixed: PCs should now be able to
       share other's PortMasters to instantiate servers.
    2. Fixed documentation on the PortMaster; its been using port 1541
       for quite awhile now (it was changed from 1540 due to a problem
       with Suns in Version 2.01).
	3. Added shutdown() before close() to Sclose, Sopen (error handling), and Spm.

   ---------------------------------------------------------------------   
    
Version 2.04:
    1. spmchk.c now returns (0 usually, 1 for vms) or 2 -- facilitated
       vms usage
    2. If Sopenv's env_var is NULL or a null string (ie. ""), it will
       use SKTPATH for its socket path environment variable.

   ---------------------------------------------------------------------   

Version 2.03:

    1. sockets.h and Sopen now use the SSLNOSETSOCKOPT to specify which
       tcp/ip implementations do not support the setsockopt() call
       (currently, that's msdos and aix).

    2. OSF support tentatively added

    3. smsrvr.c and smclient.c examples added to the distribution

   ---------------------------------------------------------------------   

Version 2.02:

    1. The sockets.tex had Smaskwait calling syntax wrong:
          wrong     : Smaskwait(Socket *)
       - instead of -
          correct   : Smaskwait()
       The sockets.tex file has been corrected.

    2. The sockets.h file was improved so that Suns which have Standard C
       compilers will use <stdarg.h> instead of <varargs.h>.

    3. Marty Olevitch donated spmchk.c (he placed it into the public domain)
       and is included and documented in this distribution.

    4. Included out-of-band data handling example (both send and receive
       programs).

    5. Sread, Sreadbytes, Swrite, and Speek: now take void *buf instead of
       char * buf.  This change should not affect any prior uses but allows
       SSL programmers to use fewer casts when dealing with these functions.

    6. Smasktest used to change the Smasktime information (to 0sec 0usec).
       Smasktest now saves the current time data, does its thing, and then
       restores the timeout info.

    7. Added cprt() to the library; its like sprt(), but for single characters.

    8. Used cprt() with the read command in sktdbg to make all characters read
       visible (and not depend on a null byte which may not be there).

    9. Thanks to R. Day, SCO and Solaris Unix support has been added (options
       to <sockets.h> and <xtdio.h>).

   10. The RDCOLOR environment variable is now used (instead of COLOR) to
       indicate what directory the <rdcolor.dat> file resides in.  The
       documentation in <sockets.tex> has been changed to reflect this.

   ---------------------------------------------------------------------   

Version 2.01:

    1. Stimeoutwait : now takes three arguments: 
    
        int Stimeoutwait(Socket *skt,long seconds,long useconds)
    
       instead of two (useconds was added in).  This change impacted:
          Sclose Sopen Srmsrvr Stimeoutwait
          Portmaster (Spm) sktdbg
    
    2. Sgets : bug in high data transfer rate fixed.  I've now transferred
       literally thousands of images (from a capacitance-based "camera") with
       no problems.
    
    3. PortMaster (Spm): firewall (security) support
       More resistance to crashing, two ways: first, more Stest()s, and
       second, the Stest function itself (see #9) has improved.
    
    4. Document: more examples, firewall discussion, and blather
    
    5. Sopen: opens with TCP_NODELAY for the machines which support it --
       this setting helps small packets get across the Net faster at the price
       of net efficiency (default behavior: tcp/ip bundles small packets together
       within some time interval).
    
    6. AIX (IBM's risc machine) is now supported via <sockets.h>
    
    7. sktdbg:
    
        a) has an enhanced prompt:
            (   0 bytes) Enter: 
           It now tells you how many bytes were awaiting processing when the prompt
           was issued (ie. it uses Stest()).
    
        b) fwinit command: tells the PortMaster to re-initialize its firewall list.
           Good for whoever owns the firewall list to update it and then to
           tell the PortMaster to re-read it.
    
        c) a "close" bug was stomped on
    
    8. Smaskwait : I'm not sure about the old release (Version 1.0) , so some of
       these functions may be new: Smaskfdset Smaskunfdset Smaskpush Smaskpop
    
    9. Stest Speek: used to have problems with a killed socket.  These functions
       now detect dead sockets (ie. return a -1).

   10. The Sun Sparcstation operating system seems to use port 1540 for its own
       purposes, so the PortMaster's port was changed to be 1541 instead of
       1540.  The new port assignment works on all the other machines in the
       test group (SGI Personal Iris, SGI Extreme, Sun 3, Sun Sparcstation,
       IBM/AIX, DecStation/Ultrix, IBM-PC/MSDOS, DEC/VMS).

   ---------------------------------------------------------------------   

Version 1.0: This was the original (and lacked a version number, sigh...)

   ---------------------------------------------------------------------   
