Jump to page titleUNITED STATES
hp.com home products and services support and drivers solutions how to buy
» contact hp


more options
 
hp.com home
End of Jump to page title
HP Services Software Patches
Jump to content


» software & drivers
» ask Compaq
» reference library
» forums & communities
» support tools
» warranty information
» contact support
» parts
» give us feedback

patches by topic
» DOS
» OpenVMS
» Security
» Tru64 Unix
» Ultrix 32
» Windows
» Windows NT

associated links
» what's new
» contract access
» browse patch tree
» search patch tree
» join mailing list

connection tools
» nameserver lookup
» traceroute
» ping


Find Support Information and Customer Communities for Presario.
Content starts here
DEC TCP/IP UCXVAX_E02042 TCP/IP V4.2 VAX ECO Summary
TITLE: DEC TCP/IP UCXVAX_E02042 TCP/IP V4.2 VAX ECO Summary
 
NOTE:  An OpenVMS saveset or PCSI installation file is stored
       on the Internet in a self-expanding compressed file.
       The name of the compressed file will be kit_name-dcx_vaxexe
       for OpenVMS VAX or kit_name-dcx_axpexe for OpenVMS Alpha.
 
       Once the file is copied to your system, it can be expanded
       by typing RUN compressed_file.  The resultant file will
       be the OpenVMS saveset or PCSI installation file which
       can be used to install the ECO.
 

Copyright (c) Digital Equipment Corporation 1999.  All rights reserved.

PRODUCT:    DIGITAL TCP/IP Services for OpenVMS V4.2

OP/SYS:     DIGITAL OpenVMS VAX

SOURCE:     Digital Equipment Corporation

ECO INFORMATION:

     ECO Kit Name:  UCXVAX_E02042
     ECO Kits Superseded by This ECO Kit:  UCXVAX_E01042
     ECO Kit Approximate Size: 12,852 Blocks
                    Saveset A -  1,242 Blocks
                    Saveset B - 11,610 Blocks

     Kit Applies To:  DIGITAL TCP/IP Services for OpenVMS V4.2
                      OpenVMS VAX V6.2 and higher
     System/Cluster Reboot Necessary:  Yes
     Installation Rating:  None

     NOTE:  In order to receive the full fixes listed in this kit,
            the following remedial kits also need to be installed:

                 None 


ECO KIT SUMMARY:

An ECO kit exists for DEC TCP/IP V4.2 on OpenVMS VAX V6.2 and higher.
The following sections describe the corrections to each facility.

-------------------------------------------------------------------------------
        PREVIOUSLY UNDOCUMENTED BEHAVIOR:
-------------------------------------------------------------------------------
        1.  Additional information.

        Note:   Because of the following ECO to UCX V4.1, which was
                incorporated into the UCX V4.2 base release, user buffer
                lengths are now validated and rejected if they exceed 64K:

        ECO Y 2-Apr-1997        Alpha and VAX

        Images:
                UCX$BGDRIVER.EXE                        UCX V4.1-12Y
                UCX$INTERNET_SERVICES.EXE               UCX V4.1-12Y  (VAX)
                UCX$INTERNET_SERVICES_V6.EXE            UCX V4.1-12Y  (VAX)
                UCX$INTERNET_SERVICES_SEC.EXE           UCX V4.1-12Y  (VAX)
                UCX$INTERNET_SERVICES_SEC_V6.EXE        UCX V4.1-12Y  (VAX)
                UCX$INETACP.EXE                         UCX V4.1-12Y

        Problem:
                System crash on write to a BG device when P2 parameter
                (user buffer length) specifies a negative value.

        Solution:
                Lengths of user buffers were not being properly validated
                and as a result, the negative value length was being
                mis-interpreted as a large positive number.  The fix is
                to properly validate this length, limiting lengths to
                64KB-1 bytes.  Lengths greater than this and lengths less
                than zero will now cause the I/O request to be terminated
                with an SS$_IVBUFLEN status.

        References:
                See the diagram on p. 3-4 of the "UCX System Services
                and C Socket Programming Guide".  "Transfer Size" gets
                a 16-bit field (because VMS QIO interface only provides
                for a 16-bit return value on the actual number of bytes
                read in the IOSB structure).
        
        2. Recommended documentation changes.

        Fix documentation in UCX System Service & C Socket Programming 
        Guide.
        On p. 6-11 which documents listen(), change:
                If a connection request arrives with the queue full (more
                than backlog connection requests pending), the client
                receives an error with an errno of ECONNREFUSED.
        to:
                If a connection request arrives with the queue full (more
                than backlog connection requests pending), the request is
                ignored so that retries inherent in TCP may succeed.  If
                the backlog has not cleared by the time TCP times out, the
                connect() will fail with ETIMEDOUT.
        
        On p. 4-55 which documents QIO IO$_SETMODE/IO$_SETCHAR, change:
                If more connections are received than have been specified,
                the the additional connections are rejected.
        to:
                If more connections are received than have been specified,
                then the additional connections are ignored so that retries
                inherent in TCP may succeed.

        PTR 70-5-773
        Alternate name 1: CFS-55406
        Alternate name 2: MGO103148

        Abstract: backlog parameter is ignored in a call to listen()

        Remark: The documentation is incorrect; UCX is behaving properly.

        UCX adheres to the prototypical Berkeley implementation in this
        regard.  In tcp_input_vms.c::tcp_input(), incoming segments on a
        listen socket are handled by creating an embryonic socket for
        the later accept() via sonewconn():
        
                if (so->so_options & SO_ACCEPTCONN) {
                /* remember the listener socket */
                        so0 = so ;
                        so = sonewconn(so);
                        if (so == 0)
                                goto drop;
        
        sonewconn() enforces the listen queue backlog using the standard
        Berkeley algorithm of 1+1.5*backlog, returning 0 when this backlog
        is exceeded:
        
        sonewconn(head)
        {
            :
            if (head->so_qlen + head->so_q0len > 3 * head->so_qlimit / 2)
                goto bad;
            :
        bad:
            return ((struct socket *)0);
        }
        
        When this occurs, tcp_input() goes to drop, which silently drops 
        the incoming SYN.  It does NOT issue a RST response.
        
        However, the UCX documentation for listen(), in the UCX System 
        Service & C Socket Programming Guide indeed contradicts this 
        behavior by indicating that "If a connection request arrives with 
        the queue full [...] the client receives an error with an errno of 
        ECONNREFUSED." This would only make sense if TCP responded to such 
        connection requests with a RST.
        
        The UCX documentation appears to have been derived from the old
        Berkeley listen(2) man page.  It turns out that ECONNREFUSED is 
        only applicable to AF_UNIX domain sockets, not AF_INET (UCX only 
        supports AF_INET).  More recent listen(2) man pages clarify this; 
        Solaris 2.6 provides a better description:
        
          If a connection request arrives with  the  queue  full,  the
          client  will receive an error with an indication of ECONNRE-
          FUSED for AF_UNIX sockets.  If the underlying protocol  sup-
          ports  retransmission, the connection request may be ignored
          so that retries may succeed.  For AF_INET sockets,  the  tcp
          will retry the connection.  If the backlog is not cleared by
          the time the tcp times  out,  the  connect  will  fail  with
          ETIMEDOUT.
        
        This issue is also discussed in Stevens "Unix Network Programming,
        2nd ed.", and explains the rationale why responding with RST is not
        appropriate:
        
          If the queues are full when a client SYN arrives, TCP ignores the
          arriving SYN (pp. 930-931 of TCPv2), it does not send an RST.  
          This is because the condition is considered temporary, and the 
          client TCP will retransmit its SYN, hopefully finding room on the 
          queue in the near future.  If the server TCP were to send an RST, 
          the client's connect() would immediately return an error, forcing 
          the application to handle this condition, instead of letting 
          TCP's normal retransmission take over.  Also, the client could not
          differentiate between an RST in response to a SYN meaning "there 
          is no server at this port" versus "there is a server at this port 
          but its queues are full".
                Posix.1g allows either behavior:  ignoring the new SYN or
                responding to the new SYN with an RST.  Historically, all
                Berkeley-derived implementations have ignored the new SYN.
        
        UCX 4.x is a Berkeley-derived implemenation.
        
        Compiled and ran test client and server provided by customer.  One
        instance of server was started on VMS UCX system.  Eight instances
        of clients were started within seconds of each other on a Unix
        system.  The first client was accepted by the server, and it tied
        the server up for 120 seconds doing its business.  During this time,
        the second and third clients were queued to the backlog properly
        (per the BSD backlog algorithm which queues up to 1+1.5*backlog
        connections), and were processed once the first client exited 
        normally. The 4th-8th clients were not queued; their TCP 
        retransmits timed out within the 75-second connection-
        establishment timeout (in UCX this is the TCP DROP_TIMER) before 
        the server finished handling the first client.  On timeout, these 
        clients all exited when their connect() calls returned ETIMEDOUT.
        
        This is the expected behavior of a Berkeley-derived TCP stack.
        
        
---------------------------------------------------------------------------

You can install this update kit on the following OpenVMS systems running
DIGITAL TCP/IP Services for OpenVMS V4.2:

*       OpenVMS VAX V6.2 or higher.

=========================================================================

        Postinstallation Notes.

        To complete the installation, do the following:

        1.      Copy SYS$MANAGER:UCX$RSHD_STARTUP.COM to 
                SYS$SYSDEVICE:[UCX$RSH].

        2.      Copy SYS$COMMON:[SYSMGR]UCX$SNMP_SHUTDOWN.COM to
                SYS$SYSDEVICE:[UCX$SNMP]UCX$SNMP_SHUTDOWN.COM.

        3.      Copy SYS$COMMON:[SYSMGR]UCX$SNMP_STARTUP.COM to
                SYS$SYSDEVICE:[UCX$SNMP]UCX$SNMP_STARTUP.COM.

=========================================================================

The following sections describe the corrections to each facility. 

---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 INSTALL Images
---------------------------------------------------------------------------
---------------------------------------------------------------------------
ECO 1 updates:
--------------

ECO A   13-MAR-1998      Alpha and VAX

        Image:

        UCX$VERSIONS.EXE                        UCX V4.2-21A

	Sources:

	UCX$CONFIG.COM V4.2-21

	Problem:

	UCX$CONFIG does not operate in a configuration where the first
	network device configured is not the "A" controller-it assumes 
	there will always be an _EWA0:, if it is to also configure an 
	_EWB0.
	Unfortunately, this particular assumption does not hold
	true for all but one of the partitions in a Galaxy
	configuration.

	Solution:

	UCX$EDEV was updated to reflect the use of an EW-class Ethernet
	device. 

	Sources:

	UCX$SNMP_SHUTDOWN.COM V1.0-02
	UCX$SNMP_STARTUP.COM  V1.0-02

	Problem:

	There are inconsistencies in startup/shutdown of subagents.
	Also, some process names (e.g., those ending in hyphen) need 
	to be enclosed in quotation marks so as not to confuse DCL.

	Solution:

	Make sure both subagents are handled, and enclose results
	of getjpi for PRCNAM in quotes.  Also make checking of
	privileges, installation and removal of images, and
	enable/disable of service consistent between the
	procedures.

	Add P1 option to control use of privilege setting and install
	since some changes in ECO would not work with autostart 
	invocation of startup which uses non-privileged UCX$SNMP account.
	The UCX$SNMP_SHUTDOWN.COM must be run from a privileged
	account. The procedure deinstalls UCX SNMP images and disables
	the SNMP service. UCX$SNMP_STARTUP.COM runs in two modes:

	Default:
	This is the non-privileged mode in which the procedure is called
	from UCX$STARTUP.COM and for autostart from the Auxiliary server.

	Full:
	This mode is intended for interactive startup from
	a privileged account.  Use the command:
	$ @SYS$MANAGER:UCX$SNMP_STARTUP FULL.  This mode is required if
	you want to restart SNMP after running UCX$SNMP_SHUTDOWN without
	stopping and restarting UCX.

        Reference:

	Internal testing.

ECO B   3-MAR-1998      Alpha and VAX

	Problem/Solution:

	Updated UCX$BINDSETUP command procedure.
	Included UCX$NFSSETUP command procedure.

	Sources:

	UCX$NFSSETUP.COM               V4.2-21
	UCX$NFSSETUP_HELP_CLIENT.DAT   V4.2-21
	UCX$NFSSETUP_HELP_SERVER.DAT   V4.2-21
	UCX$NFSSETUP_HELP_MAIN.DAT     V4.2-21
	UCX$BINDSETUP.COM              V4.2-21
	UCX$BINDSETUP_HELP.TXT         V4.2-21

	6-MAR-1998      Alpha and VAX

	Problem/Solution:

	Prior versions of this file would complain about UCX$INET_*
	logical names being defined if network services were registered 
	before UCX$STARTUP.COM had been executed.  This is the usual 
	case at OpenVMS system startup.  This ECO allows the registration 
	of TCP/IP without such errors.
	This ECO uses the same lexical case for the host (node) name
	registration as is used in the UCX$INET_HOST and UCX$INET_DOMAIN 
	logical names. Previous versions would uppercase the fully 
	qualified host name.

	Sources:

	SYS$NET_SERVICES_UCX.COM       V4.2-21

	Problem/Solution:

	An attempt to $RCP between systems running UCX 4.1 (and 
	possibly earlier) and UCX 4.2 would fail with the error 
	%RCP-E-INVRESP.
	This error may also occur with two systems running 
	UCX 4.2 where the SYS$MANAGER:UCX$REXECD_STARTUP.COM 
	and SYS$MANAGER:UCX$RSHD_STARTUP.COM files have not 
	been copied to the appropriate directories after the 
	UCX 4.2 installation.

	PLEASE NOTE:

	The ECO installation places these two files in SYS$MANAGER:.
	To complete the solution, you must manually copy the files to
	the proper directories and ensure that file ownership and 
	protection are correct. For example (please follow local 
	security policy in setting file protections):

	$ copy SYS$MANAGER:UCX$REXECD_STARTUP.COM SYS$SYSDEVICE:[UCX$REXEC]
	$ set file/owner=parent/protection=(S:RWE,O:RWED,G:RE,W:RE) -
	  SYS$SYSDEVICE:[UCX$REXEC]UCX$REXECD_STARTUP.COM;

	$ copy SYS$MANAGER:UCX$RSHD_STARTUP.COMSYS$SYSDEVICE:[UCX$RSH]
	$ set file/owner=parent/protection=(S:RWE,O:RWED,G:RE,W:RE) -
	  SYS$SYSDEVICE:[UCX$RSH]UCX$REXECD_STARTUP.COM;

	Failure to copy both files or to properly set file 
	ownership and protection might cause RSH, REXEC, 
	and/or RCP to either fail or to act inconsistently 
	depending upon whether the /USER qualifier or proxy is used.
          
	Sources:

	UCX$REXECD_STARTUP.COM         V4.2-21
	UCX$RSHD_STARTUP.COM           V4.2-21

	Image:

        UCX$VERSIONS.EXE                        UCX V4.2-21B

        Problem/Solution:

        Corrected to display a patch version properly.

        Reference:

        Internal testing.
      
ECO 2 updates:
--------------
ECO C   28-APR-1998     Alpha and VAX

        Sources:

        [INSTALL]UCX$SHUTDOWN.COM

        Problem:

        When logged in on a system with tn device and trying to
        shutown UCX, the customer gets unrecognized command messages.

        Solution:

        Define SAY as SYS$OUTPUT at the top of the UCX$SHUTDOWN.COM 
        file. 

        Reference:

        PTR 30-1-446, CFS.53292

        Sources:

        UCX$LPD_STARTUP.COM             UCX V4.2-01
        UCX$LPD_SHUTDOWN.COM            UCX V4.2-01

        Problem:

        Some UCX$*.COM files are not handling the UCX$LPD_PRINTCAP 
        logical correctly.

        Solution:

        In UCX$LPD_STARTUP.COM, only DEFINE UCX$LPD_PRINTCAP if it is 
        not already defined.  In UCX$LPD_SHUTDOWN.COM, do not DEASSIGN
        UCX$LPD_PRINTCAP.

        Sources:

        [INSTALL]UCX.PDF

        Problem:

        RFC1442.MY file is in kit but is not copied to the [.SNMP]
        subdirectory of UCX$EXAMPLES.

        Solution:

        Add line to do copy to [INSTALL]UCX.PDF.

        References:

        Notes file #6380 (and others)

ECO D   24-SEP-1998     Alpha and VAX

        Images:

        UCX$VERSIONS.EXE

        Sources:

        UCX$CONFIG.COM 

        Problem:

        Pointing to 127.0.0.1 as BIND server will give you the 
        following error:

        UCX> sho host /server=127.0.0.1
        %UCX-W-BIND_NOSERVNAM, Server with address 127.0.0.1 is not 
        responding 
        %UCX-E-BIND_NOSERVERS, Default servers are not available
        %UCX-W-NORECORD, Information not found
        -UCX-E-BIND_NOSERVERS, Default servers are not available
        
        Solution:

        Modify the UCX$CONFIG.COM to add the entry for LOCALHOST.

        References:

        PTR 30-2-546

ECO E   16-OCT-1998     Peritus Software Services, Inc.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Alpha and VAX

        Sources:

        UCX$SNMP_STARTUP.COM

        Images:

        None.

        Problem:

        Remove purge statements from UCX$SNMP_STARTUP.COM

        Solution:

        Comment out the following lines from UCX$SNMP_STARTUP.COM:

        $ SAVE=5+2*F$GETSYI("CLUSTER_NODES")
        $ PURGE/KEEP='SAVE'

        References:

        None.

---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 Kernel Images
---------------------------------------------------------------------------
ECO 1 updates:
--------------
ECO A	15-JAN-1998     Alpha and VAX

        Images:

        UCX$BGDRIVER.EXE                        UCX V4.2-21A
        UCX$INTERNET_SERVICES.EXE               UCX V4.2-21A (VAX)
        UCX$INTERNET_SERVICES_V6.EXE            UCX V4.2-21A (VAX)
        UCX$INTERNET_SERVICES_SEC.EXE           UCX V4.2-21A (VAX)
        UCX$INTERNET_SERVICES_SEC_V6.EXE        UCX V4.2-21A (VAX)
        UCX$INETACP.EXE                         UCX V4.2-21A

	Problem:

	Deassigning one channel to a particular device caused
	any pending attention ASTs to be canceled, even
	those of other channels.

	Solution:

	Flush only attention ASTs upon the final channel
	deassign operation, when the reference count drops to zero.

	References:
	CFS.52150.

ECO B  23-JAN-1998     Alpha and VAX

	Images:

        UCX$BGDRIVER.EXE                        UCX V4.2-21B
        UCX$INTERNET_SERVICES.EXE               UCX V4.2-21B (VAX)
        UCX$INTERNET_SERVICES_V6.EXE            UCX V4.2-21B (VAX)
        UCX$INTERNET_SERVICES_SEC.EXE           UCX V4.2-21B (VAX)
        UCX$INTERNET_SERVICES_SEC_V6.EXE        UCX V4.2-21B (VAX)
        UCX$INETACP.EXE                         UCX V4.2-21B

	Problem:

	IP Multicast support was compromised in V4.1 ECO W.  IGMP
	messages were no longer being sent, and the SO_BROADCAST 
	option was required in order to send Multicast datagrams.

	Solution:

	Skip several broadcast-related checks in the case
	of Multicast data. Ensure that IGMP messages are sent, and 
	that other Multicast packets are looped back upon transmit 
	for other sockets on the local host.
	Note that packets larger than the MTU are still not looped 
	back, but this should be a highly unusual case.

	References:
	CFS.53405.

ECO C  25-Feb-1998      Alpha and VAX

	Image:

        UCX$BGDRIVER.EXE                        UCX V4.2-21C
        UCX$INTERNET_SERVICES.EXE               UCX V4.2-21C (VAX)
        UCX$INTERNET_SERVICES_V6.EXE            UCX V4.2-21C (VAX)
        UCX$INTERNET_SERVICES_SEC.EXE           UCX V4.2-21C (VAX)
        UCX$INTERNET_SERVICES_SEC_V6.EXE        UCX V4.2-21C (VAX)
        UCX$INETACP.EXE                         UCX V4.2-21C

	Problems:

	1. In some circumstances, the active service counter
           was decremented below zero, resulting in an inability to
	   accept further connections.
	2. Termination AST's for created server processes were
	   missed, leading to inaccurate service counts and occasional 
	   RWMBX hangs.

		Solution:

	1. Test to avoid decrementing this counter below zero.
	2. Rather than queuing an AST each time a server process is
	   started, queue only one.  When it triggers, queue another.

        Reference:

	CFS.56956.

	Problem:

        Wrong image ID.

        Solution:

        Image was rebuilt with correct ID.

        Images:

        UCX$TRACE.EXE         UCX V4.2-21C (Alpha VMS V70 only)
	UCX$INET_ROUTING.EXE  UCX V4.2-21C (Alpha VMS V70 only)

        Reference:
           
	Internal report.

ECO 2 updates:
--------------
ECO D  10-APR-1998     Alpha and VAX

        Images:

        UCX$BGDRIVER.EXE                        UCX V4.2-21D
        UCX$INTERNET_SERVICES.EXE               UCX V4.2-21D (VAX)
        UCX$INTERNET_SERVICES_V6.EXE            UCX V4.2-21D (VAX)
        UCX$INTERNET_SERVICES_SEC.EXE           UCX V4.2-21D (VAX)
        UCX$INTERNET_SERVICES_V6_SEC.EXE        UCX V4.2-21D (VAX)
        UCX$INETACP.EXE                         UCX V4.2-21D

        Problem:

        SW "LAND ATTACK" hangs VMS on Alpha and VAX (also called Denial
        of Service Attacks)

        Solution:

        Fixed.

        Reference:

        PTR 30-1-635

ECO E   17-JUN-1998     Alpha and VAX

        Images:

        UCX$BGDRIVER.EXE                        UCX V4.2 21E

        Problem:

        A UCX program sends UDP packets to the limited broadcast 
        address 255.255.255.255, incorrectly sends to 
        {, 255} 

        Solution:

        Enhance UCX to behave similarly to Digital Unix, that is, the
        conditions for broadcasting to the limited broadcast address
        are the same two that apply to Digital Unix:
          (1) The socket must be bound to a local interface, and
          (2) The SO_DONTROUTE socket option must be set.
        In an emergency the fix can be disabled by clearing the
        limited_bcast longword.

        Reference:

        PTR 30-1-440

ECO F   24-JUN-1998     Alpha and VAX

        Images:

        UCX$INETACP.EXE                         UCX V4.2-21F

        Problems:

        Recordando un d\355a como hoy (el d\355a de San Juan), a361o
        1971, en la playa de Isla Verde.

        Solution:

        In routine INETACP_GET_USER_INFO, if we get an error
        condition, we wind up calling INETACP_SERV_ACCEPT_SYS_ERROR,
        which finally winds up in routine INETACP_SERV_ACCEPT_CLOSE,
        which expects R5 to be pointing at the accepter UCB.
        Therefore, before calling INETACP_SERV_ACCEPT_SYS_ERROR, 
        refresh  R5.

        Reference:

        None.

ECO G   20-JUL-1998     Alpha and VAX

        Images:
 
        UCX$BGDRIVER.EXE (UCX$INTERNET_SERVICES.EXE)    UCX V4.2 21G

        Problem:

        Configuring an interface when OpenVMS system global, 
        NET$AR_LAN_VECTOR has not been initialized causes a system 
        crash. 

        Solution:

        Test for a valid value in NET$AR_LAN_VECTOR before using it.

        Reference:

        None.

ECO H   27-JUL-1998     Alpha and VAX

        Images:

        UCX$BGDRIVER.EXE                UCX V4.2-21H
        UCX$INETACP.EXE                 UCX V4.2-21H

        Problem:

        VMS 6.2 w/ UCX 4.1  Unable to make contact with cluster alias

        Solution:

        The solution was to update the cluster lock name before 
        requesting it, in case multiple ARP-based cluster aliases 
        are in simultaneous use. 

        Reference:

        PTR 70-5-773

ECO K   31-AUG-1998     Alpha and VAX

        Images:
 
        UCX$BGDRIVER.EXE                UCX V4.2-21K
        UCX$INETACP.EXE                 UCX V4.2-21K

        Problem:

        UCX 4.1 ECO8 VMS 7.1 MBUF Large Buffer leak; around 180 DATA 
        type buffers are lost each day.  Same IPMT as CFS.55196 case.

        Solution:

        Free the mbuf chain in the paths in tcp_usrreq() that were found
        which could allow mbufs to leak.

        Reference:

        PTR 70-5-668

-------------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 INET Images
--------------------------------------------------------------------------------

ECO A	09-FEB-1998      Alpha and VAX

        Image:

        UCX$INETDRIVER.EXE      UCX V4.2-21A

	Problem:

	I/O cancel does not return the OpenVMS error
	SS$_CANCEL as does TGV INETDRIVER.

	Solution:

	Added a macro to all return code translations to check
	for a valid UNIX exit code and, in the absence of one, 
	return the OpenVMS error code. This code should address 
	any problems with exit codes.

	References:

	None.

---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 IPC Images
---------------------------------------------------------------------------
---------------------------------------------------------------------------
ECO 2 updates:
--------------
ECO A   28-MAY-1998     Alpha only

        Images:

        UCX$IPC_SHR.EXE                         UCX V4.2-21A

        Problem:

        gethostbyname() incorrectly errors when AFR is enabled.
        Alignment faults appear from inside gethostbyname.

        Solution:

        Fixing the source of the alignment faults would likely 
        require modifying the database format, which is not feasible 
        to do in an ECO and could be very risky.  (Alignment faults 
        are only a performance issue, their occurrence should not 
        break any functionality.) Rather, we corrected the malformed 
        code to properly revert the LIB$SIG_TO_RET exception handler 
        in ucx$gethostbyname() prior to its calling into the 
        UCX$ACCESS_SHR.EXE library where the alignment faults
        occur.

        Reference:

        PTR 30-1-672, PTR 30-1-245

Corrections for DIGITAL TCP/IP Services V4.2 Telnet Images
---------------------------------------------------------------------------
ECO 1 updates:
--------------
ECO A 	29-JAN-1998		Alpha and VAX

        Image:

        UCX$TNDRIVER.EXE        UCX V4.2-21A

	Problem:

	System crashed in OpenVMS routine EXE$TIMEOUT while 
	servicing a corrupt fork and wait queue.

	Solution:

	The major reason this problem occurred is that OpenVMS 
	changed the value of the name of a bit position in a TTY 
	UCB (such as a TNDRIVER UCB) in OpenVMS V6.2. In particular, 
	symbol TTY$V_FD_BUSY was defined as bit 8 in OpenVMS 
	versions prior to V6.2, and it was re-defined to be bit 10 
	in V6.2.
	The TNDRIVER distributed for all VAX platforms uses the old
	definition and for Alpha platforms running, V6.2 of OpenVMS, 
	the TNDRIVER built for V6.1 uses the old definition. The 
	result is that the wrong bit was being tested on systems 
	where the definitions were out of synch.
	The solution was to devise a new test of the condition that
	works on all platforms.

	References:

	CFS.52568.

ECO 2 updates:
--------------
ECO B   5-MAY-1998     Alpha and VAX

        Images:

        UCX$TELNET.EXE                  UCX V4.2-21B

        Problem:

        OpenVMS Operating Sy V6.2 UCX V PRIORITY 3 REFER Q15732 
        SECURITY PROBLEM
        Using the FIND key in TN3270 after connecting to an IBM 
        system will grant the user OPER privilege in DCL subprocess 
        back on the VMS host.)

        Solution:

        Change STESCRKBD.B32::SPAWN(), wrapping its LIB$SPAWN() call 
        with calls to the reset_privs() routine introduced in 1995, 
        similar to how TELNET$SPAWN() now works.

        Reference:

        None.
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 SNMP Images
---------------------------------------------------------------------------
ECO 1 updates:
--------------
ECO A	22-JAN-1998      Alpha and VAX

        Images:

        UCX$SNMPIVP.EXE		UCX V4.2-21A

	Problem:

	Non-initialization of status variable for 
	snmp_request() routine.

	Solution:

	Initialize variable to non-error value.

	Reference:

	PTR 30-3-77.

	Images:

	UCX$OS_MIBS.EXE                         UCX V4.2-21A

	Problem:

	Display of physical address for interface group 
	(OID 1.3.6.1.2.1.2.2.1.6) incorrect:
	* First two bytes incorrect, correct bytes start 
	  at third position, but then last 2 not displayed.
	* Wrong address for display, either mismatched, 
	  or in case of LO0 address, displayed when none
	  should be (exact problem depended on the number of 
	  interfaces).

	Solution:

	Correct to string cmp routines that determined match of 
	address to interface name in table read, also copy 
	of physical address from QIO data structure to 
	application structure.

	Reference:

	PTR 30-1-571

	Problem:

	Display of incorrect next hop 
	(OID 1.3.6.1.2.14.21.1.7), often as 0.0.0.0

	Solution:

	Change to copy correct data from QIO data structure.

        Reference:

	PTR 30-2-509.

	Problem:

	In-code documentation added for unfinished Process
	Software CIDR change.

	Solution:

	Corrected.

        Reference:

	None.

	Image:

	UCX$ESNMP_SHR.EXE               UCX V4.2-21A

	Problem:

	A shridmismat error for applications linked with
	the previous version of the ucx$esnmp_shr.exe.

	Solution:

	Insert GSMATCH=lequal,a,b into options file, where
	a,b match the values inserted by the linker for the
	base version of UCX V4.1.

        Reference:

	None.

	Images:

	UCX$ESNMP_SHR.EXE                       UCX V4.2-21A

	Problem:

	Function missing from shareable image for API: inst2ip().

	Solution:

	For Alpha: add SYMBOL_VECTOR to link options file.
	For VAX: add VECTOR to macro file.

        Reference:

	None.

	Problem:

	Header file corrections:
	esnmp.h: need #define for __() so users can use this
		 header file for custom applications.
	ioctl.h: minor correction taken from old UCX V4.1 code
		 for consistency.

	Solution:

	esnmp.h: with #ifdef __VMS, insert #define __(x) x.
	ioctl.h: edit out old structure value (rt_mask) not
	         used in OpenVMS.

	Reference:

	None.

ECO B   17-FEB-1998      Alpha and VAX

        Image:

        UCX$ESNMP_SERVER.EXE         UCX V4.2-21B
        SYS$SYSTEM:UCX$OS_MIBS.EXE   UCX V4.2-21B
        SYS$SYSTEM:UCX$HR_MIB.EXE    UCX V4.2-21B

	Problem:

	Incorrect MIB variable reporting, counts for if group.

	Solution:

	Aligned header file.

        Reference:

	PTR 30-2-377

	Problem:

	MIB-II subagent aborts if system has pseudo-interface
	configured.

	Solution:

	Correct clearing out of buffer area.
	Also, include interface name in error message for easier
	debugging.

	Reference:

	PTR 30-1-688.

ECO 2 updates:
--------------
ECO C   19-MAY-1998     Alpha and VAX

        Images:

        SYS$SYSTEM:UCX$CHESS_SUBAGENT.EXE       UCX V4.2-21C
        SYS$SYSTEM:UCX$ESNMP_SERVER.EXE         UCX V4.2-21C
        SYS$SYSTEM:UCX$ESNMP_SHR.EXE            UCX V4.2-21C
        SYS$SYSTEM:UCX$OS_MIBS.EXE              UCX V4.2-21C
        SYS$SYSTEM:UCX$HR_MIB.EXE               UCX V4.2-21C

        Problem:

        Need more robustness for subagent functioning.

        Solution:

        Subagent code modified to do shorter sleep, more restarts.

        Reference:

        PTR 30-2-534

        Images:

        SYS$SYSTEM:UCX$CHESS_SUBAGENT.EXE       UCX V4.2-21C

        Problem:

        Chess sub-agent example is linked unnecessarily against
        ucx$access_shr.exe and ucx$ipc_shr.exe.  No effect on UCX V4.2
        but good to send out an updated example for users to test
        interoperability against V5.0.

        Solution:

        Remove link of those shareables in the .opt files for Chess 
        example. 

        Reference:

        None

ECO D   27-MAY-1998     Alpha and VAX

        Sources:
        types.h

        Images:

        None. (actually most all of the .exe files change, but the 
        types.h file is all that will be patched.)

        The file types.h belongs in the system directory:
        SYS$SYSROOT:[000000.SYSCOMMON.UCX$LIB.RPC]
      
        Problem:

        DECC compiler on Alpha fails with "%CC-E-NOLINKAGE"
        errors on typedefs: int32, uint32, int64 & uint64

        Solution:

        Use the INTS.H definitions for int32, uint32, int64 and 
        uint64. This prevents the %CC-E-NOLINKAGE  errors that were 
        generated at compile time if both RPC.H and PTHREAD.H were 
        included.  INTS.H properly defines int32 and uint32 for both 
        current platforms and properly defines int64 and uint64 for 
        the Alpha platform.  However, if the platform is VAX, INTS.H 
        does not define either int64 or uint64.  This is an 
        acceptible solution because none of the provided source code 
        in either RPCXDR or PCNFSD uses either int64 or unit64. 
        Therefore, these typedefs are only used in customer 
        applications. If a customer application is currently using 
        the miss-defined 32-bit typedefs int64 and/or uint64 on 
        either platform, the solution would be to modify the source 
        code of the application to use int32 and/or uint32 and 
        recompile. 

        Reference: 

        PTR 30-1-242

        Images:

        SYS$SYSTEM:UCX$OS_MIBS.EXE              UCX V4.2-21D

        Problem:

        Inaccurate counts for ifTable data elements.

        Solution:

        Use values from qio call adapted from lancp code (VMS V7.1)
        (DCL command: mcr lancp show device/counters)

        Reference:

        PTR 30-1-789

ECO E   29-JUL-1998     Alpha only

        Images:

        SYS$SYSTEM:UCX$HR_MIB.EXE               UCX V4.2-21E
        SYS$SYSTEM:UCX$OS_MIBS.EXE              UCX V4.2-21E

        Problem:

        Code for consistency with V5.
        Checking 64-bit counters; likely never implemented unless
        4.x build to be done on 7.2 Alpha (otherwise #ifdef'ed out)

        Solution:

        For 64-bit counts, check architecture and VMS version, 
        adjust qiow parameter accordingly.  Add routine to check VMS 
        version at run-time.

        Reference:

        None.

        Images:

        SYS$SYSTEM:UCX$CHESS_SUBAGENT.EXE       UCX V4.2-21E
        SYS$SYSTEM:UCX$HR_MIB.EXE               UCX V4.2-21E
        SYS$SYSTEM:UCX$OS_MIBS.EXE              UCX V4.2-21E

        Problem:
 
        Fix for ECO C 19-May "robustness".  After unsuccessful close
        was still just trying to re-open, got dupl...

        Solution:

        See under ECO C   19-MAY-1998 for more details.

        Reference:

        PTR 30-2-534

        Images:

        SYS$SYSTEM:UCX$HR_MIB.EXE               UCX V4.2-21E
        SYS$SYSTEM:UCX$OS_MIBS.EXE              UCX V4.2-21E

        Problem:

        SNMP cannot handle display of large number (>700) sockets...

        Solution:

        Change data structure to QIO.

        Reference:

        UCX note #6390

ECO F   3-AUG-1998     Alpha and VAX

        Images:

        SYS$SYSTEM:UCX$CHESS_SUBAGENT.EXE       UCX V4.2-21F
        SYS$SYSTEM:UCX$HR_MIB.EXE               UCX V4.2-21F
        SYS$SYSTEM:UCX$OS_MIBS.EXE              UCX V4.2-21F

        Sources:

        SYS$COMMON:[SYSHLP.EXAMPLES.UCX]CHESS_METHOD.C
        
        Problem:

        Chess sub-agent aborts on SET of OID 
        1.3.6.1.4.1.36.2.15.2.99.4.1.4.4 to 3 (delete); 
        this was on VMS 6.2, DEC C 5.7-004, link with UCX$SNMP:ESNMP.OLB

        Solution:

        An element of "method" data structure was not getting initialized
        within the calling code in esnmp_poll.c.  Both the calling code
        and the example were fixed.  Error showed up only on certain plat-
        forms and in link with .olb, not shareable; could be that under
        certain conditions the problem struct element was getting 
        initialized to 0 by chance or because of architecture, DEC C 
        version, etc.

        Reference:

        UCX note #6453


---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 SDA Images
---------------------------------------------------------------------------
ECO 2 updates:
--------------
ECO B   15-OCT-1998     Alpha and VAX

        Images:

        ucx$sda.exe                     UCX V4.2-21B

        Problem:

        pwip$sda.exe ECO A was installed as ucx$sda.exe
        in ECO 1.

        Solution:

        ucx$sda.exe needs to be relinked for Alpha V6.2
        and V7.0 and VAX V6.2 with a new image ID.

        References:

        None.
              
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 Finger Images
---------------------------------------------------------------------------

---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 BIND Images
---------------------------------------------------------------------------
ECO 1 updates:
--------------
ECO A	19-DEC-1997      Alpha and VAX

        Images:

	UCX$ACCESS_SHR.EXE	UCX V4.2-21A

	Problem:

	Obsolete IQUERY calls need to be removed for 
	compatibility with other BIND implementations.

	Solution:

	Replaced the call to FindHostInfo that uses IQUERY
	with GetHostByAddr().
        
        Reference:   

	None.

	Images:

	UCX$METRIC.EXE          UCX V4.2-21A (Alpha VMS V70)

	Problem:

	Wrong image ID.

        Solution:

        Image was rebuilt with correct ID.

        Reference:

	Internal report.

---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 BIND_SERVER Images
---------------------------------------------------------------------------
ECO 1 updates:
--------------
ECO A	13-JAN-1998      Alpha and VAX

        Image:

	UCX$BIND_SERVER.EXE	UCX V4.2-21A

	Problem:

	The name server generated too much logging information about
	load balancing.

	Solution:

	Put both syslog() calls inside "if DEBUG" clause.

	Reference:

	PTR 30-1-630

---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 PWIP Images
---------------------------------------------------------------------------
ECO 1 updates:
--------------
ECO A	22-JAN-1998      Alpha and VAX

        Image:

        UCX$PWIPACP.EXE          UCX V4.2-21A

	Problem:

	Several different symptoms, including crashes, 
	memory corruption, loss of PWIP connections, etc.

	Solution:

	A variable in routine, getChan(), was incorrectly 
	declared to be static. The result was that, 
	if the routine was ever entered simultaneously
	(such as in normal mode and in an AST), data could be 
	corrupted. This day-one bug was dormant until the latest 
	release of PATHWORKS. With an older version of PATHWORKS,  
	conditions were such that the routine was never entered 
	simultaneously.  However, the new release has a different 
	set of calls into PWIP and the bug is now exposed.  The
	solution was to make the variable a normal automatic variable.

	Reference:

	Many reports.

---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 UCP Images
---------------------------------------------------------------------------
ECO A   06-APR-1997 Alpha only.

        Images:

        UCX$UCP.EXE          UCX V4.2-21A (Alpha VMS V70)

        Problem:

        Wrong image ID.

        Solution:

        Image was rebuilt with correct ID.

        Reference:

        Internal report.

---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 BOOTP and TFTP Images
---------------------------------------------------------------------------
ECO 1 updates:
--------------
ECO A 	04-FEB-1998             Alpha and VAX

        Image:

	UCX$BOOTP.EXE		UCX V4.2-21A

	Problems:

	BOOTP replies with the wrong Server Address on a
	multiple interface host.

	Solutions:

	Correct a problem in the subnet_match() routine. Pass subnet
	mask of the BOOTP client to subnet_match(). The responding
	interface must be in the same subnet as BOOTP client.

	References:

	CFS.54174.

---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 FTP Images
---------------------------------------------------------------------------
ECO 1 updates:
--------------
ECO A	05-FEB-1998     Alpha and VAX

        Image:

        UCX$FTP.EXE             UCX V4.2-21A

	Problem:

	The FTP initialization file, FTPINIT.INI, was not being
	used when FTP executed in batch mode.

	Solution:

	Corrected the code path to place the FTP initialization 
	into the common path independent of whether the FTP client 
	is executing on a DC$_TERM or not.

	Reference:

	PTR 30-1-605, CFS.55947.

ECO D   05-FEB-1998     Alpha and VAX

        Image:

        UCX$FTP.EXE             UCX V4.2-21D

	Problem:

	Internal problems caused by the presence of the
	FTPINIT.INI file.  The DCL command line was lost
	if the file existed.

	Solution:

	Processed the initialization file only after 
	parsing the command line.

	Reference:

	Internal testing.

ECO E	05-FEB-1998     Alpha and VAX

        Image:

        UCX$FTP.EXE             UCX V4.2-21E

	Problem:

	If the local source file of the COPY/FTP command
	does not exist (or an error signaled), that error
	was not returned to DCL for examination of $STATUS.

	Solution:

	The status FTP$_NORMAL was always returned by the
	central FTP PUT routine, even after it signals the error.
	In addition, the routine did not signal the error in 
	typical FTP fashion.
	The code has been modified to signal an appropriate
	error and to return an error indication to DCL.
                                          
	Reference:

	PTR 30-1-618, CFS.56104.

ECO F	09-FEB-1998     Alpha and VAX

        Image:

        UCX$FTP.EXE		UCX V4.2-21F

	Problem:

	The PUT command send an unwildcarded file in its
	uppercase OpenVMS format, which is not acceptable for UNIX
	systems.

	Solution:

	When the responsibility for uppercasing moved to the
	caller of the common 'put' routine, the appropriate
	code needed in the unwildcarded put routine was
	never implemented.  The file's name from the NAM
	block is now lowercased if the connection is not in
	VMS-Plus mode and uppercase enforcement is disabled.
             
	Reference:

	CFS.55993 (PTR 30-1-609).

ECO 2 updates:
--------------
ECO G   25-JUN-1998     Alpha and VAX

        Images:

        UCX$FTP.EXE                     UCX V4.2-21G

        Problem:

        FTP will not allow one to output results from DIR/OUT to a 
        directory owned by an identifier when DISKQUOTAs are enabled 
        on the volume. 

        Solution:

        In dir_lst_rqst(), do not use FAB$M_TMP flag when creating
        user-specified DIR/OUT file, and no longer SYS$ENTER() it.

        Reference:

        PTR 30-1-733

ECO H   10-AUG-1998     Alpha and VAX

        Images:

        UCX$FTP.EXE                     UCX V4.2-21H

        Problem:

        FTP: 'Directory/FTP' output wrongly displayed when filename
        sizes are 20 characters (names are concatenated)

        Solution:

        Add one space to enforce at least one blank between columns.

        Reference:

        PTR 70-5-756

ECO I   11-AUG-1998     Alpha and VAX

        Images:

        UCX$FTP.EXE                     UCX V4.2-21I

        Problem:

        FTP: Client command 'user username password' no longer works
        in a DCL procedure file.
        FTP: user xxx yyyy (xxx is username, yyy is password) is not
        working in FTP command procedure.

        Solution:

        The fix was ported from a V5 fix.
        Change ftp$prompt() to check the variable fromatty rather than
        stdin_specified to determine when to use C I/O and when to 
        use SMG. Modified login_prompt() to accept input that is not 
        from a proper terminal by testing both stdin_specified and 
        fromatty. 

        Reference:

        PTR 70-5-531, PTR 70-5-775

ECO K   25-AUG-1998     Alpha and VAX

        Images:

        UCX$FTP.EXE                     UCX V4.2-21K

        Problem:

        FTP: in batch mode fails to set $status to error

        Solution:

        Port from 5.0.  Change in ftpget and ftpput.
        
        Reference:

        PTR 70-5-689 

---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 FTPD Images
---------------------------------------------------------------------------
ECO 1 updates:
--------------
ECO A	29-JAN-1998      Alpha and VAX

        Image:

        UCX$FTPC.EXE        UCX V4.2-21A

	Problem:

	CWD only reported syntax errors when attempting to
	establish a new default directory even though the
	device and/or directory strings may be invalid.

	Solution:

	The $PARSE SYNCH option was being used when parsing
	the new default directory.  Turning this off allows
	the device and directory strings to be checked for
	validity and existence.

	Reference:

	PTR 30-1-549.

ECO B   30-JAN-1998      Alpha and VAX

        Image:

        UCX$FTPC.EXE        UCX V4.2-21B

	Problem:

	The command 'CWD /' returns an error.

	Solution:

	Treat 'CWD /' as synonymous with 'CWD ~' and 'CWD':
	set the default to SYS$LOGIN:.
	Reference:

	CFS.56290.

ECO C   05-FEB-1998       Alpha and VAX

        Image:

        UCX$FTPC.EXE        UCX V4.2-21C

	Problem:

	RENAME does not handle wildcard characters correctly.

	Solution:

	Recoded RNTO action routine to handle wildcards
	as well as multiline output.

	Problem:

	CWD does not handle logical names properly when they
	are expressed without a colon (:) at the end.

	Solution:
	Added a check for a logical name when deciding if the 
	string needs to be translated from UNIX to OpenVMS format.

        Reference:

	CFS.54606, PTR 30-1-523.

ECO 2 updates:
--------------
ECO D   29-MAY-1998     Alpha and VAX

        Images:

        UCX$FTPD.EXE                                    UCX V4.2-21D

        Problem:

        When a communication number of several ftp clients and ftp
        server exceeded 1000000 times, an ftpc process of UCX isn't
        made.

        Solution:

        Reset the session_sequence counter when it exceeds 999999.

ECO E   20-AUG-1998     Alpha and VAX

        Images:

        UCX$FTPD.EXE            UCX V4.2-21E

        Problem:

        FTPD: Server hangs in LEF state after getpeername() failure.

        Solution:

        Reenable ASTs before returning in all cases.  Always return a
        value when returning from startup_session().

        Reference:

        PTR 70-5-827 

ECO F   10-SEP-1998     Alpha and VAX

        Images:

        UCX$FTPC.EXE                    UCX V4.2-21F

        Problem: 

        FTP 'put' of file named 'TT' may overwrite UCX$FTPSERVER.COM

        Solution:

        Fixed.

        Reference:

        PTR 70-5-765

---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 CFS_SHR Images
---------------------------------------------------------------------------
ECO 1 updates:
--------------
ECO A	16-FEB-1998     Alpha only

        Images:

        UCX$CFS_SHR.EXE         UCX V4.2-21A

	Problem:

	On Alpha, if two threads enter the BFS$$SIGNAL routine,
	they can be merged together.  This condition can lead 
	to an assortment of symptoms, including an ACCVIO message, 
	a corrupted stack, SS$_OPCDEC, and looping on thread 
	rundown trying to unlock a resource not owned by this thread.

	Solution:

	Initialize the stored ATCB pointer for
	Alpha-conditionalized code as well as VAX code.

	Reference:

	CFS.45425, CFS.50080.

	Problem:

	On Alpha systems, file system error messages go to
	UCX$CFS_FATAL_MESSAGES, by default assigned to _OPA0:, 
	instead of being handled as OPCOM messages as with VAX 
	systems.  Writing directly to _OPA0: can be annoying on 
	workstation servers, because the writing causes the 
	monitor to display the console window.  

	Solution:

	The executive mode stack must be switched back to normal 
	before the $SNDOPR is done.

	Reference:

	CFS.41421, UCX 4724.

ECO 2 updates:
--------------
ECO A   21-SEP-1998     Alpha and VAX

        Sources:

        CCF.H
        CFS.H
        CFS_BM.C
        CFS_DESCRIP.MMS
        CFS_MISC.C

        Images: 

        No image was built for release.

        Problem:

        CFS does not compile in debug mode.

        Solution:

        Port fixes from 5.0.

        References:

        PTR 30-2-547

ECO B   28-SEP-1998     Alpha and VAX

        Images:

        UCX$CFS_SHR.EXE

        Problem:

        Analyze Container/Repair fails on a saved backup/noimage
        from a 20GB disk.

        Solution:

        Increase the length of the structure element to a long.
        Remove the reserved word that was used for alignment purposes.
        Rename the variable to nbit$l_size to avoid confusion about
        its size.  Fix format statements that assumed that nbit$w_size
        was a word.

        Reference:

        PTR 70-5-849.
        
ECO C   29-SEP-1998     Alpha and VAX

        Images:

        UCX$CFS_SHR.EXE

        Problem:

        NFSserver consumes 100% CPU time.
        1. 100% cpu time in CUR state.  This problem showed as a loop
        in BFS$CLOSE, an EXEC AST is queued when an RDCB is marked for
        deletion.
        2. NFS$SERVER process hangs in LEF state. This problem showed
        an ACCVIO doing an INSQUE in BFS$$CACHE module.
        3. NFS$SERVER process hangs in LEF state.

        Solution:

        Rewrite the thread AST enable and disable code.
           $$RESUME will always disable ASTs.
           $$WAIT will only enable ASTs if not returning to a thread.
           $$STARTUP will only enable ASTs if not returning to a thread.
           BFS$$AST_ENABLE will always enable ASTs.
           BFS$$AST_DISABLE will always disable ASTs.
           $$AST_ENABLE will always enable ASTs.
           $$AST_DISABLE will always disable ASTs.
        Used a BFS$$SLEEP(500) instead of scheduling another EXEC AST
        and waiting.
        Fixed the code in BFS$$CACHE that kept the state of the RDCB
        after forcing other threads to run.
        Added checking for a RDCB that could be removed from the LRU
        cache before attempting to lock it.
        Fixed the code in BFS$$CACHE_CHECK that kept state about the
        LRU cache after forcing other threads to run.
        Made the $UNLOCK_RDCB in BFS$WRITE for changing the size of a
        file to be unconditional.
        Made the $LOCK_RDCB in BFS$WRITE and BFS$READ conditional based
        on the passed in channel.
        Added conditional code based on building a debug version.  Also
        added a stack trace which gets generated on exceptions.

        References:

        PTR 70-5-774

---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 DNFS Images
---------------------------------------------------------------------------
ECO A   06-APR-1997 Alpha only.

	Images:

        UCX$DNFSACP.EXE         UCX V4.2-21A (Alpha VMS V70)
        UCX$DNFSDISMOUNT.EXE    UCX V4.2-21A (Alpha VMS V70)
        UCX$DNFSDRIVER.EXE      UCX V4.2-21A (Alpha VMS V70)
        UCX$DNFSMOUNT.EXE       UCX V4.2-21A (Alpha VMS V70)

	Problem:

	Wrong images IDs.

	Solution:

	Images were rebuilt with correct IDs.
         
	Reference:

	Internal report.

ECO 2 updates:
--------------
ECO A   02-JUN-1998     Alpha and VAX

        Problem:

        The system crashes with a PGFLIPLHI; the current process is 
        the NFS client ACP process ( DNFS1ACP )

        Images:

        UCX$DNFSACP.EXE                 UCX V4.2-21A

        Solution:

        The solution was to correctly define $LLINK_START and 
        $LLINK_END to be linkage addresses.  Due to a "BUG" in the 
        linker,  the addresses need to have storage defined to get the 
        correct address assigned. 

        Reference:

        None.

ECO B   13-OCT-1998     Alpha and VAX

        Problem:
        Wrong image IDs.

        Solution:

        Images were rebuilt with correct IDs.

        Images:

        UCX$DNFSACP.EXE         UCX V4.2-21B

        Reference:

        None.
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 LPD Images
---------------------------------------------------------------------------
ECO 1 updates:
--------------
ECO A	22-JAN-1998      Alpha and VAX

        Images:

        UCX$LPD_SHR.EXE              UCX V4.2-21A

	Problem:

	Unable to print 700 small or medium ANSI or 
	binary files at once.

	Solution:

	Modified card_RMS() function, which on buffer 
	overflow calls flush_card() rather than signaling
	RMS$_RTB.
	Reference:

	CFS.52472.

	Problem:

	Unable to stop and delete queues in a processing state.
	It appears that the issue was one of not recognizing and 
	closing "damaged" connections, and therefore remained 
	"stuck" down in the driver and unable to respond to SMB 
	messages and the like.

	Solution:

	Added code in rresvport() to use system logical names
	UCX$LPD_KEEPALIVE (y/n), UCX$LPD_PROBETIME (1..64k) and
	UCX$LPD_DROPTIME (1..64k).

        Reference:

	CFS.51291.

ECO 2 updates:
-------------
ECO B   10-JUN-1998     Alpha and VAX

        Images:

        UCX$LPD_RCV.EXE                 UCX V4.2-21B
        UCX$LPD_SHR.EXE                 UCX V4.2-21B
        UCX$LPD_SMB.EXE                 UCX V4.2-21B
        UCX$LPQ.EXE                      UCX V4.2-21B
        UCX$LPRM.EXE                    UCX V4.2-21B
        UCX$LPRSETUP.EXE                UCX V4.2-21B
        UCX$TELNETSYM.EXE               UCX V4.2-21B

        Problem:

        When printing several files which share the same setup 
        module from different queues, the second print is retained 
        on error with rms-e-flk.  This problem occurs on Alpha 
        UCX 4.0.  When testing with UCX 4.1 Alpha the two 
        symbionts loop. 

        Solution:

        Segment large buffers ( > 32K ) into 32K byte lengths.
        Log only the first and last 32 bytes of buffers that are >= 32K.
        Now that large buffers have been segmented to never exceed 32K,
        we can safely use the TCP send() function on each segment.

        Reference:

        None.

ECO C   28-SEP-1998     Alpha and VAX

        Images:

        UCX$LPRSETUP.EXE

        Sources:

        LPD$LPRSETUP.C

        Problem:

        LPD spool file not created since upgrade to 7.1 and ucx 4.1 
        eco 4.
         UCX$LPRSETUP V4.1 ECO 2 to ECO 6 DOES NOT create the 
        spool directof a remote printer on an OpenVMS/AXP V7.1 system.
        UCX$LPRSETUP dosn't create spool directory on Alpha running
        OpenVMS V7.1 and UCX V4.2.

        Solution:

        The mkdir() 3rd uic arg bug in VMS 7.x has been reported to 
        the DECC folks (DECC Notes Conference #2659).

        In the interim, it seems viable to workaround the mkdir() by
        changing UCX$LPRSETUP to use the standard 2-arg mkdir() call
        and to properly report any problems in doing so.  Since most
        users of UCX$LPRSETUP would be privileged (System 
        Administrators), they would likely have one of the GRPPRV, 
        SYSPRV, or BYPASS privileges which forces even the standard 
        2-arg mkdir() to create spool directories owned by the 
        parent [UCX$AUX,UCX_LPD].  (The SYSTEM account is typically 
        configured with such privileges.)  Unprivileged users are 
        not able to create spool directories due to insufficient 
        permissions anyway. With this code in place, sufficiently 
        privileged users can create spool directories via 
        UCX$LPRSETUP regardless of whether the release of OpenVMS 
        contains the mkdir() bug or not. 

        WriteEntry() was also changed to only call MakeSpool() when 
        writing the entry to the PRINTCAP file, and not when writing 
        it to the LOG file.  This change seems prudent -- now that 
        the user is informed of mkdir() errors, the directory should 
        only be created once! 

        Reference:

        PTR 70-5-248, PTR 70-5-541, PTR 70-5-846.

---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 POP Images
---------------------------------------------------------------------------
ECO 1 updates:
--------------
ECO A	26-JAN-1998      Alpha and VAX

        Images:

        UCX$POP_SERVER.EXE              UCX V4.2-21A

	Problem:

	The POP server could not process mail messages with more
	than 255 bytes in a line.

	Solution:
	Changed code to bypass the limit by looking at OpenVMS
	callable mail's internal buffer for the message.

	Problem:
	When trying to read large mail messages, the POP
	server hangs and issues a MAIL-W-NOMOREREC error message 
	to the log file.

	Solution: 

	The problem occurs because OpenVMS
	callable mail reads the entire mail message.
	If the process does not have enough memory,
	callable mail returns MAIL-W-NOMOREREC.
	  
	The solution is to detect this condition and
	send a mail message back to the recipient telling
	to asking the system administrator to increase the 
	POP server account's page file quota, thereby 
	correcting the problem.

        Reference:

	PTR 30-1-600, 30-1-614.

ECO 2 updates:
--------------
ECO B   22-APR-1998     Alpha and VAX

        Images:

        UCX$POP_SERVER.EXE              UCX V4.2-21B

        Problem:

        VMSmail API was returning an incorrect number of records 
        for a mail message that was in it's NEWMAIL folder. The POP sever 
        uses this number to loop thru calls to mail$message_get() to get 
        each line record) of the message.  Because the length of the 
        message was incorrectly given as one more than the actual length, 
        the call to mail$message_get() to get the last message line 
        resulted in the MAIL-W-NOMOREREC error.

        Solution:

        Documents a situation where VMSmail reported 120-
        record message, but the actual external mail file contained only 
        119 records as read thru the MAIL$M_RECMODE (record-at-a-time) 
        method. Tolerate this offf-by-one accounting assuming it's 
        identical to the prior HACK ALERT, which handles a similar 
        situation with messages read via the MAIL$_MESSAGE_BUFFER method.

        Reference:

        PTR 30-1-700

ECO C   11-MAY-1998     Alpha and VAX

        Images:

        UCX$POP_SERVER.EXE              UCX V4.2-21C

        Problem:

        PMDF (another vendor's) mail client was translating
        single-quote (') characters in From: addresses into "\s" before 
        wrapping them with SMTP%"...".  This renders the address as 
        illegal from RFC822 standpoint, so SMTP and POP did not recognize 
        this as a proper "SMTP" From address, failing one of the three 
        conditions necessary for ignore_mail11_headers operation.  While 
        single-quote is a legal character for an SMTP address, embedded 
        backslashes are not. 

        Solution: 

        If POP's patch_from_line() call to SMTP's build_path_from() 
        routine fails with UCX$_SMTP_PARSERR, and the From: address begins 
        with the SMTP%" jacket, then relax the ignore_mail11_headers 
        constraint that the VMS mail From: address must be RFC822 and 
        treat it as if it really was RFC822/SMTP compliant.  Customer is 
        expected to notify the third party vendor to get the root cause 
        problem in the mail client fixed.

        Reference:

        PTR 30-1-616

---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 SMTP Images
---------------------------------------------------------------------------
ECO 1 updates:
--------------
ECO A   26-JAN-1998      Alpha and VAX

        Image:

	UCX$SMTP_MAILSHR.EXE            UCX V4.2-21A
        UCX$SMTP_RECEIVER.EXE           UCX V4.2-21A
        UCX$SMTP_SYMBIONT.EXE           UCX V4.2-21A
        UCX$SMTP_PARSESHR.EXE (VAX)     UCX V4.2-21A
	UCX$SMTP_PARSESHR_TV.EXE (Alpha)UCX V4.2-21A
        UCX$UUENCODE.EXE                UCX V4.2-21A
        UCX$UUDECODE.EXE                UCX V4.2-21A
	UCX$SMTP_SFF.EXE                UCX V4.2-21A

	Problem:

	A customer tried to send file that had fixed-length 
	records, which caused various problems.

	Solution:

	This situation is not supported. Print warning when
	action is attempted.

        Reference:

	PTR: 30-1-529, CFS.54722.

ECO 2 updates:
--------------
ECO B   8-JUN-1998     Alpha and VAX

        Images:

        UCX$SMTP_RECEIVER.EXE           UCX V4.2-21B

        Problem:

        SMTP receiver is not including any 'From' DOMAIN header 
        information.

        Solution:

        Retro fit change from the v5/v6 code:
        smtp_recv.c and smtp_recv_serv.c :
        Add "from domain" clause into the Received: header we tack
        onto incoming messages. This corresponds to PTR 30-1-625
        Retro fit change from the v5/v6 code ( ptr 30-1-625 ) :
        smtp_recv_serv.c :
        Add "from domain" clause into the Received: header we tack
        onto incoming messages.

        Reference:

        PTR 30-1-625

ECO C   20-JUL-1998     Alpha and VAX

        Images:

        UCX$SMTP_MAILSHR.EXE                    UCX V4.2-21C
        UCX$SMTP_PARSESHR_TV.EXE                UCX V4.2-21C
        UCX$SMTP_RECEIVER.EXE                   UCX V4.2-21C
        UCX$SMTP_SYMBIONT.EXE                   UCX V4.2-21C

        Problem:

        When the customer starts UCX, it always displays the following 
        error in the UCX$SMTP_LOGFILE.LOG:
        smtp_parse_init  2nd QIO() failed, ISOB status = 844
        Error building list of IP addresses for the local host, 
        status = 844 
        UCX V4.1 E8 SMTP, Inbound mail causing a %SYSTEM-F-ACCVIO on
        the UCX$SMTP_RECEIVER server, which does not deliver the mail.

        Solution:

        The correction is add logic to fetch the MAXIMUM NUBER OF
        INTERFACES and to use that value in the buffer size 
        calculation. The definition of INET$C_MAX_IFNETS was added to 
        inetdef.h. Delete the "comment" part of the from address.

        Reference:

        PTR 70-5-659, PTR 70-5-674

---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 RSH Images
---------------------------------------------------------------------------

---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 RLOGIN Images
---------------------------------------------------------------------------
ECO A   06-APR-1997 Alpha only.

        Images:

	UCX$RLOGIN.EXE          UCX V4.2-21A (Alpha VMS V70)
        
	Problem:

        Wrong image ID.

	Solution:

        Image was rebuilt with correct ID.

	Reference:

	Internal report.                

---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 RPC Images
---------------------------------------------------------------------------
ECO 1 updates:
--------------
ECO A	29-JAN-1998      Alpha and VAX

        Images:

        UCX$RPCXDR_SHR.EXE      UCX V4.2-21A

	Problem:

	IEEE double precision results in 'Server can't
	decode argument' from a UCX client.

	Solution:

	The RPC message appears to be short by four bytes.
	Checking the source revealed that if the first four
	bytes encode properly, the second four bytes will 
	not be encoded because an || was being used instead 
	of an && condition.

	References:

	PTR 30-1-629.

ECO 2 updates:
-------------
ECO A   27-MAY-1998     Alpha and VAX

        Sources:

        [RPCXDR]types.h

        Images:
 
        None. (actually most all of the .exe files change, but the types.h
               file is all that will be patched.)

        The file types.h belongs in the system directory:
                SYS$SYSROOT:[000000.SYSCOMMON.UCX$LIB.RPC]

        Problem:

        DECC compiler on Alpha fails with "%CC-E-NOLINKAGE"
        errors on typedefs: int32, uint32, int64 & uint64

        Solution:

        Use the INTS.H definitions for int32, uint32, int64 and 
        uint64. This prevents the %CC-E-NOLINKAGE  errors that were 
        generated at compile time if both RPC.H and PTHREAD.H were 
        included.  INTS.H properly defines int32 and uint32 for both 
        current platforms and properly defines int64 and uint64 for the 
        Alpha platform.  However, if the platform is VAX, INTS.H does 
        not define either int64 or uint64.  This is an acceptible 
        solution because none of the provided source code in either 
        RPCXDR or PCNFSD uses either int64 or unit64. Therefore, these 
        typedefs are only used in customer applications. If a customer 
        application is currently using the miss-defined 32-bit typedefs 
        int64 and/or uint64 on either platform, the solution would be 
        to modify the source code of the application to use int32 and/or 
        uint32 and recompile.

        Reference:

        PTR 30-1-242

---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 RCP Images
---------------------------------------------------------------------------
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.2 NTP Image
---------------------------------------------------------------------------
ECO 2 updates:
-------------
ECO A   10-SEP-1998     Alpha and VAX

        Images:

        UCX$NTPD.EXE            UCX V4.2-21A

        Problem:    

        NTP: times not adjusted in 5 node mixed cluster.

        Solution:                       

        Added an option similar to unix NTP which allows the correction 
        of any time difference, including times greater than the 
        maximum aperture.  The flag is not set by default, which means      
        that if the time difference is too large (around 5.3 hours or         
        so) then the following message will appear in the log 
        file: seconds is too large (set clock manually or set correct-
        any) To set the option, CORRECT-ANY is added to the UCX$NTP.CONF
        file which after doing the filtering and finding the 
        difference to be too large, it will reset the time.

        Reference:

        PTR 70-5-799


INSTALLATION NOTES:

In order for the corrections in this kit to take effect, the system must
be rebooted.  If the system is a member of a VMScluster, the entire
cluster should be rebooted. 

	Postinstallation Notes.

	To complete the installation, do the following:

	1.	Copy SYS$MANAGER:UCX$RSHD_STARTUP.COM to 
		SYS$SYSDEVICE:[UCX$RSH].

	2.	Copy SYS$COMMON:[SYSMGR]UCX$SNMP_SHUTDOWN.COM to
		SYS$SYSDEVICE:[UCX$SNMP]UCX$SNMP_SHUTDOWN.COM.

	3.	Copy SYS$COMMON:[SYSMGR]UCX$SNMP_STARTUP.COM to
		SYS$SYSDEVICE:[UCX$SNMP]UCX$SNMP_STARTUP.COM.
Files on this server are as follows:
»ucxvax_e02042.README
»ucxvax_e02042.CHKSUM
»ucxvax_e02042.CVRLET_TXT
»ucxvax_e02042.a-dcx_vaxexe
»ucxvax_e02042.b-dcx_vaxexe
privacy statement using this site means you accept its terms