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
|