Welcome

TCP/IP Package for TSX-Plus Change Log

Version 2.40 Released June 2008

   These are updates for TSX-Plus.

V02.40
15-Jun-2008
    PORTIN.C
        Updated makesocket() socket scanning to
        start socket closing on orphaned sockets
        after suitable timeout periods.
    CLIUTL.C
        Fixed code in listen() which would cause an
        inifinite loop if the socket state change to
        SLISTEN was not detected.  Added error checking
        for listen() startup failure.
    RHTTP.C, RPOP3.C, RAUTH.C, RGOPH.C, RSMTP.C, RLPD.C
    RCNCT.C, RPCNCT.C, RFTP.C, RTLNTA.C, and RPTLNA.C
        Scan for end of line and terminate line fixed
        for possible line buffer overflow.
        Added error checking for listen() startup
        failure and to detect socket corruption.
    FTPB.C, FTPL.C, and PMON.C
        Added error checking for listen() startup
        failure.
    TELNET.C and CNCT.C
        Updated various common constructs of the type a->b
        located throughout the programs to use a common
        value.  Removed program wide global values from
        function argument lists.
    JOBMON.MAC
        Corrected the system call to the TSX 'job status'
        emt.
    EQ.MAC
        Updated the EQ device driver interrupt processing
        to be more consistant with the EU device driver.
    DFAULT.H, LCLSKT.C, GBLSKT.C, and SKTSKT.C
        Reduced maximum number of TCPIP 'sockets'
        to 16.

    TSX-Plus Observations:
        When configuring the NGR parameter in TSGEN.MAC
        (The total number of 'shared' global regions
        used by all jobs) the minimum value must be set
        to the sum of the number of time share lines
        plus the total number of subprocess windows
        plus the number of TCPIP sockets plus one.
        This is required even though the subprocess
        windows are not shared.

        When configuring the TBLDEF parameters
        in TSGEN.MAC, e.g. with

            TBLDEF      2.,8.,10.,1.

        a value of 2 + 8 + 16 + 1 is the minimum value
        required for NGR.

        It has been observed that if the detached jobs
        parameter is increased much beyond 10. TSX
        becomes unstable with heavy network access and
        will consistently freeze. This effect is quite
        repeatable and may change with different system
        configurations. (TSX-Plus V6.5)

V02.39
15-Jan-2008
    RFTP.C
	Because the SIZE command always reports file sizes
	as multiples of 512 bytes, transfers of ASCII files
	may become problematic if the FTP client compares
	the transferred file size to the SIZE command file
	size as they are in general NOT the same.  Thus
	the default has been changed to report the SIZE
	command as NOT implemented.  The -f option has been
	added to enable the SIZE command if required.

V02.38
26-Mar-2007
    MAILER.C
	Increased the maximum line length from 128
	to 512 characters.  Various header lines
	were exceeding 180 characters causeing
	malformed headers when truncated to 128
	characters.

V02.37
1-Feb-2007
    RFTP.C
	Updated RFTP.C for RT-11 to not specify any
	files as logical disks.  The RT-11 version
	does not support the change directory (cd)
	command into logical disk files.
    TSXUTL.C
	Fixed the change directory (cd) string parsing
	to ignore superfluous NULL subdirectorys,
	e.g.: cd dm5://xdsk.dsk/, cd dl3://, ...
    PASWRD.C
	Corrected the 'Access Directory' selection
	processing and display code.

V02.36
15-Nov-2006
    MAILER.C
	Corrected mailer scan and forwarding routines.
    MAILA.C, MAILB.C, and MMAIL.C
	Added code to 'complete' an email address
	when only a local username is given.

V02.35
1-Oct-2006
    MAILA.C, MAILB.C, MMAIL.C, MAILER, and RSMTP.C
	Corrected mail 'index' file processing which
	synchronizes the receiving and sending of
	mail messages.
    MAILER.C and PASWRD.C
	Added mail forwarding for local users.  A user's
	mail may be forwarded to another local user account
	or to a remote computer.  The MAILER service should
	now be activated by MAIL, MMAIL, RSMTP, and RPOP3.


V02.34
1-Jan-2006
    RFTP.C
	The command filespecs are now scanned to remove
	badly formed file paths created by browsers
	which assume only heirarchical file structures.

    RTLNTA.C, RTLNTB.C, RCNCT.C, RFTP.C, RHTTP.C,
    RLPD, RSMTP.C, RPOP3.C, RGOPH.C, and RAUTH.C
	The TCP/IP server programs have been updated to
	allow an alternate service port to be specified

    TSX-Plus Only:.
	The TCPIP.CFG file must specify a unique server
	command file for the alternate port option.
	e.g.:

	service=33,1,TCP:rtelnt.s33	# alternate port

	rtelnt.s33:
		...
		run/single TCP:rtelnt
		-actlqpyz 0 2 1 33 PAS:paswrd.fil 15 600

    RPTLNA.C, RPTLNB.C, RPCNCT.C,
    TELNET.C, CNCT.C, FTPA.C, MAILA.C, and PMON.C
	Various changes/corrections in help text,
	no changes in program code.


V02.33
15-Jan-2004
    EI.MAC, EU.MAC, and EQ.MAC
	The network device drivers have been rewritten
	to remove the internal device time-out code.
	This change means that the RT-11 monitors no longer
	are required to have the sysgen device time-out
	option.  The device time-out code is now implemented
	through a device handler special function (spfun 212).
	The spfun 212 is an optional device handler function.
	To utilize this device time-out option the user
	program must include coding to determine when a
	time-out has occurred and call spfun 212 to initialize
	the network interface.  [ The removal of the device
	time-out code simplifies the handler.  The device
	handler no longer requires the .timio, .ctimio, or
	.sync processing. This also means that the time-out
	configuration is completely user programmable. ]

    NIV56.MAC, NCV56.MAC, NQV56.MAC, and NUV56.MAC
	Added the special function spfun 212 to the DEC
	network device drivers.  This function adds
	device time-out to the NC, NQ, and NU handlers.
	The functionality is identical to that described
	for the EQ and EU drivers above.

    ENDRVR.MAC and SYSTEM.MAC
	Updated ENDRVR.MAC to support the Network Device
	Time-Out special function spfun 212.  If the
	transmission of a packet does not complete or
	return an error within 4 seconds then an xmit
	time-out call (spfun 212, block = 1) initializes
	the network interface.  Similarly, if no packets
	are recieved within 1 minute then a recv time-out
	call (spfun 212, block = 0) initializes the
	network interface.  The spfun 212 calls update
	the driver time-out counters if the ethernet
	status block option (spfun 210) is included.
	SYSTEM.MAC was updated to include extra queue
	elements for the two added .mrkt/.cmkt timing
	channels.


V02.32
1-Apr-2003
    TCP.C:
	Updated ackcheck(), estabcon(), checkfin(), and
	the routines calling these functions.
	The function ackcheck() notifies the client
	program via an event that data has been ACKed.
	Redundant CONCLOSE event removed from checkfin().
	The function estabcon() notifies the client program
	with the CONDATA event and now does not ACK the
	recieved data.  The ACK will be generated when
	the data has been DEQUEUEd by the client program.

    SERVER.C and SRVUTL.C:
	Moved checking for output data with outqpsh()
	to ntsleep() (from SERVER.C to SRVUTL.C).
	
    TCP.C, EVTDEF.H, and DFAULT.H:
	A long standing 'synchronization' problem between
	the TCPIP server and the client programs has been
	found.  No event was being sent from the server
	program to the clients when the outgoing data
	had been accepted by the remote host.  A new
	event has been added to the CONCLASS: CONSENT.
	This new event has been added to the event
	definitions in EVTDEF.H.  The function ackcheck()
	in TCP.C has been updated for the synchronization
	and repeated ACK checks.  This correction
	has allowed the removal of all 'transfer delay'
	timimg code in modules FTPA.C, FTPB.C, FTPL.C,
	RFTP.C, RHTTP.C, and RGOPH.C.

    SRVUTL.C, CLIUTL.H, and PRODEF.H:
	Added the code to allow the last packet transferred
	by transq() to be immediately retransmitted (duplicated).
	This is the note in transq():

	/*
	 * This is really %#@&$*.
	 * Most systems use a 'delayed ACK' when receiving
	 * small packets.  This may result in very low
	 * transfer rates.  Some systems will ACK on an
	 * immediate duplicate.  So here we send a duplicate
	 * packet if enabled.
	 */

	This retransmit is only applicable to data packets
	not ACK packets or any other control packet.

	Updated the routines outqpsh() and outqoff().

    FTPA.C, FTPB.C, FTPL.C, RFTP.C, RHTTP.C, and RGOPH.C:
	To significantly increase data transfer rates the
	fread(), fwrite(), and NULL removal routines have
	been replaced with MACRO routines. The function
	blkrd() reads multiple disk blocks directly into
	the read buffer.  The function blkwt() writes
	data directly from the data buffer.  The function
	blkstr() is a fast NULL removal routine replacing
	the previous 'for' loop.

    FTPA.C, FTPB.C, FTPPI.H, and FTPL.C:
	Added the command 'duplicate' to enable/disable
	the transmission of duplicate packets.

    RFTP.C, RHTTP.C, and RGOPH.C:
	Added the command line option '-w' to enable
	duplicate packet transmission.

    CLIUTL.C, FTPB.C, FTPL.C, and RFTP.C:
	Added code to copy the mseg, mwin, and mtu values
	from the 'control socket' to the 'data socket'.

    RFTP.C:
	Check for a repeated PORT command.  Terminate
	connection on third identical PORT command.

    SCRNAC.C:
	Updated SKTMON Screen A to indicate if duplicate
	packet transmission is enabled/disabled.

    SCRNDI.C and SCRNPT.C:
	Updated display window to enumerate the individual
	TCP/IP flags.

    V_____.H:
	Restored the '#define DEBUGOPTION' in all
	the V_____.H header files.  This allows
	individual programs to be compiled with
	debugging.  The '#define DEBUGOPTION' in
	DFAULT.H remains to allow all programs to
	be compiled with debugging by changing just
	this one file.


V02.31
1-Dec-2002
    FTPL.C:
	Updated STOR and RETR functionality to include
	RT-11 Device Read and Write. (Required a change
	to the C I/O Library routine IOFOPA.MAC)
	Added check for file size specification before
	appending "[-1]" to write file specifications.

    TSXUTL.C:
	Added check for file size specification before
	appending "[-1]" to write file specifications.

    RTFILE.C:
	Various minor changes to rtparse(), rtwild(),
	and rtstring().

    IOFOPA.MAC:
	Observations of RT-11 / TSX-Plus .csispc responses
	which in turn required a modification to the C-Library
	I/O routine to maintain compatability with all
	versions of RT-11 and TSX-Plus:

		Mode	      RT (V5.3)	      TSX-Plus
		----	      ---------	      --------
		DY0:		ok		ok
		DY0:=		error		ok
		DY0:.		ok		ok
		DY0:.=		error		ok
		DY0:[-1]	error		ok
		DY0:[-1]=	error		ok
		DY0:A		ok		ok
		DY0:A=		ok		ok
		DY0:.E		ok		ok
		DY0:.E=		error		ok
		DY0:A.		ok		ok
		DY0:A.=		ok		ok
		DY0:A[-1]	error		ok
		DY0:A[-1]=	ok		ok
		DY0:A.[-1]	error		ok
		DY0:A.[-1]=	ok		ok
		DY0:.E[-1]	error		ok
		DY0:.E[-1]=	error		ok

    EU.MAC:
	Discovered that the difference between a DELUA and
	DEUNA network cards' interrupt response to running
	out of read-buffers would cause the DEUNA to enter
	an interrupt race condition in the handler.  This
	problem would result in exceedingly slow transfers,
	a driver hang, or system crash.  A minor driver
	change has corrected this problem.


V02.30
25-Oct-2002
	Slow file transfer problems caused by TCPIP server
	packet processing routines not updating the transfer
	flag skt->out.lasttime properly.  Files updated:
	SERVER.C, SRVUTL.C, TCP.C, and DFAULT.H

	Changed port number sequence to a pseudo random
	value based on the current clock ticks.  File
	PROTIN.C modified.

	SUSPND.MAC suspend/resume code was modified.

	Server programs RFTP.C, RHTTP.C, and RGOPH.C updated.
	Client programs FTPB.C and FTPL.C updated.

	The RPTLNT.C file was split into RPTLNA.C and RPTLNB.C
	because of the C compiler complaints of 'OUT-OF-SPACE'.

	Moved the '#define DEBUGOPTION' to VRSION.H from
	all the V_____.H header files.

4-July-2002
	Fixed a possible problem in RPOP3.C [topline()] which
	could cause file truncation if mail file exceeds
	32767 lines.

Go Back

... Home Page

Last Updated: February 2011