SEARCH CONTACT US SUPPORT SERVICES PRODUCTS STORE
United States    
COMPAQ STORE | PRODUCTS | SERVICES | SUPPORT | CONTACT US | SEARCH
gears
compaq support options
support home
software & drivers
ask Compaq
reference library
support forum
frequently asked questions
support tools
warranty information
service centers
contact support
product resources
parts for your system
give us feedback
associated links
.
} what's new
.
} contract access
.
} browse patch tree
.
} search patches
.
} join mailing list
.
} feedback
.
patches by topic
.
} DOS
.
} OpenVMS
.
} Security
.
} Tru64 Unix
.
} Ultrix 32
.
} Windows
.
} Windows NT
.
connection tools
.
} nameserver lookup
.
} traceroute
.
} ping
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.



This patch can be found at any of these sites:

Colorado Site
Georgia Site



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 and legal statement