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