CHANGES TO SOCKETSHR 0.9D

This file describes changes to the SOCKETSHR interface to NETLIB that have been
made since version 0.9D, The Andy Harper modifications to the last official
release from the author Eckhart Meyer.

0.9D-6 - T.Dickey
------
* 17-Nov-2000 : SOCKETPRV.H
		Add header for internal interfaces to ensure they are
		consistent, and fixed corresponding minor mismatches.

		SOCKETSHR.H
		Ifdef'd alarm(), fcntl(), read() and write() functions to
		compile with DECC 6.x versus DECC 4.x.

		NOTE: sleep() probably should not be used in applications
		because alarm() is part of socketshr's interface.

		INET.C
		Change all functions to ANSI form.

		SOCKETSHR/MAKE_BIN_ZIP.COM
		Updated list of files to save.

		MAKE_LOG_ZIP.COM
		New script, for capturing listings, build logs and linker maps.

		MAKE_SRC_ZIP.COM
		Use 'zip' rather than 'vzip', updated list of files to save.
		(Did this in all scripts).

		NETLIB/CLEAN.COM
		NETLIB/CLOBBER.COM
		NETLIB/MAKE_BIN_ZIP.COM
		New scripts.

		NETLIB/SETUP.COM
		Delete 'traceroute' symbol to avoid conflict with 'TRACE',
		needed for building socketshr.

		NETLIB/SOCKET_NETLIB.C
		Add fallback definitions for flock stuff so this will still
		build when the host doesn't provide those definitions.

		NTOH_HTON.C
		Change unsigned-short values to __in_addr_t, to match DECC 6.x,
		Change functions to ANSI form.

		READDB.C
		Change functions to ANSI form.

		SI_SOCKET.C
		Fix a byte-order dependency in si_fputc().
		Correct misplaced ifdef __DECC_VER that made trace__ and
		ftrace__ undefined at link time.

		SOCKETSHR_XFR_ALPHA.OPT
		Remove h_errno from interface, since it conflicts with
		OpenVMS 7.0 (tin does not need this; ymmv).

		TRNLNM.C
		Change functions to ANSI form.

		TYPES.H
		Adjusted ifdef's to avoid redefinition of FD_SET and related
		variables with DECC.

		UCX/CLEAN.COM
		UCX/CLOBBER.COM
		New scripts.

		UCX/SETUP.COM
		Delete 'traceroute' symbol to avoid conflict with 'TRACE',
		needed for building socketshr.

		UCX/SOCKET_UCX.C
		Change functions to ANSI form.

		UCX/UCX_IOCTL.C
		Add system includes which declare prototypes for the sys$XXX
		functions in this file, change to lowercase to match prototypes.
		Change functions to ANSI form.

0.9D-5? - John Malmberg
-------
* 01-Dec-1998 : INET.C
		inet_addr() is not working for pure numeric addresses.
		Problem traced to uninitialized variable.
		Have to be able to rebuid it with GCC 2.8.1.

		Location before beginning of array was being written to.

		Converted to compile with GCC 2.8.1.

		READDB.C
		TRUE/FALSE are not defined in GCC headers.

		SI_SOCKET.C
		Converted to compile with GCC 2.8.1.

		Added warning about getenv() in a loop to translate
		logical names.

		TRNLNM.C
		Converted to compile with GCC 2.8.1

		SOCKET_NETLIB.C
		Misc. fixes.
		SAMBA is doing a close(0).  Have to open("NLA0:") instead.


0.9D-4
------

* 10-JUN-1997 : Incorporated further fix from Michael Stenns to improve the
		fix to the bind problem. This uses the underlying port if a non
		zero one is returned by the underlying stack otherwise it
		generates the random one in the range 30001->60000.

* 10-JUN-1997 : Minor bug fixed up in LINK.COM whereby a missing close bracket
		on the f$search call to find the DEC C compiler caused the
		symbol HAVEDECC to be undefined. This could cause later link
		problems.


0.9D-3
------

* 04-JUN-1997 : Problem reported by Michael Stenns when BIND is called
		specifying a port of zero.  This is supposed to return a random
		unused port by the underlying stack. Some, including CMU, do
		not, so SOCKETSHR attempts to allocate one when a zero port is
		returned. The code to do this always returns a fixed port
		number (as long as no other sockets are opened in the
		meantime). This prevents multiple copies of the same program
		running (since the local port is global) and also prevents the
		same program being run until TCP times out the old port
		connection (can be up to 4 minutes). Fixed up the code to
		generate a more random port above 30000 based upon the current
		time. There is a small probability that it might still clash
		with someone else's port but that probability is much much
		lower than before.


0.9D-2
------

* 03-JUN-1997 : Modified the build procedure to take into account the
		definition of the logical name DECC$CC_DEFAULT. If this is
		defined to "/VAXC" or if DEC C is not found, then VAX C is used
		for compilation.

* 03-JUN-1997 : Problem reported by Rob Puller that TYPES.H gave compilation
		errors under VAX C.  Fixed this up by properly ifdefing the
		definition of time_t.

* 03-JUN-1997 : Problem reported by Rob Puller that the changes to support
		VAX and ALPHA distinction (IE use of f$getsyi("ARCH_NAME")) do
		not work on VMS 5.4-2 as this lexical does not exist. Changed
		this to use f$getsyi("HW_MODEL") instead.


0.9D-1
------

* 02-JUN-1997 : Fixed problems with the getsockname and getpeername functions.
		They were returning zeroes in the 1st two digits of the address
		due to the wrong type of parameter being passed to the netlib
		routine NET_GET_INFO. The port paramters should be longword but
		were actually word, so overwriting was occurring.

* 02-JUN-1997 : Modified various build procedures and header files to get the
		software to compile properly under Both VAX C and DEC C on VAX
		and ALPHA.

Andy Harper
Kings College London
