Date of this edition: February 25, 2003
Host OS: QNX® 4.25
 |
This release note includes Runtime and Toolkit patches, but the
patch letters aren't always in sync. |
The initial 4.25 release includes changes to the
runtime
and
toolkit,
as described below.
- A small WWW server (slinger) has been added.
- ds, a data server for slinger, has also been
added.
- SNMPv2 is now supported.
- TCP/IP utilities now use shared libraries.
- bind v8.1.2 is now supported.
- sendmail v8.8.8 is now supported.
- ftpd is immune to the FTP bounce attack by default.
- The new utility dhcp.client implements the Dynamic Host
Configuration Protocol.
It talks to a DHCP server to obtain a temporary IP address for the
machine it's running on.
- The TCP_KEEPALIVE socket option is now supported.
- pppd supports the MS-DNS extension (RFC 1877).
- Sock(l)et times out persist probes.
This solves the problem of sockets stuck in the LAST_ACK
state.
- ftp and ftpd support the transfer of any
reasonable files (including FIFO).
- ping sets the exit status to nonzero if the machine isn't
alive.
- TCP/IP utilities are relinked with the new resolver library that
supports the lookup keyword and looks for
/etc/resolv.conf.node before
/etc/resolv.conf.
If you want /etc/hosts looked at before
DNS, then add lookup file bind to your
/etc/resolv.conf file.
- DNS is now immune to signals.
- Sock(l)et fixes a problem with the maximum packet size
allowed for IP raw socket.
It doesn't fault when you try to set SO_SNDBUF to 0.
It correctly handles the situation in which recv() tries to get
more than 64K of data in one shot.
- ftp fixes a Y2K bug with the newer command.
The command put filename_with_wildcards works
better.
The command
mget filenames_with_uppercase_letters
works better when case is on.
- ftpd SITE HELP works better in debug mode.
- Corrected a map3270 problem with the F10 key under
qnx console when tn3270 is run.
- nslookup doesn't fault with a nonexistent server.
- pppd fixes a bug with the login option and works
better with chat.
- rshd doesn't fault if the TZ environment
variable isn't set.
- sendmail.cf fixes an address-conversion problem.
- syslogd fixes the LOG_FTP problem and the
"Interrupted function call" problem.
- The telnet command send getstatus works better.
- popper fixes the buffer-overrun security hole.
- ds3r.lib, ds3s.lib, and
<ds.h> have been added.
- <nlist.h> has been added.
- Shared libraries socket_s.lib, snmp_s.lib,
and rpc_s.lib are included.
- In all header files, protection has been added against compiler
structure alignment options and C++ linkage.
In addition to the above changes, Patch A also includes changes to the
runtime
and
toolkit,
as described below.
- Socklet fixes a bug where an OOB LAN check in
nialloc() was ignored.
- Socket fixes a bug where socket stat would cause a deadlock.
Also, an NFSD cache problem was corrected.
- telnet has a new option
(-e escape_char) that lets you disable the
escape character.
- ftpd file download now fails on directories.
- if_up is a new utility that you can use to ensure a
TCP/IP interface is available:
if_up [-a] [-r retries] [-s seconds] interface...
It returns nothing if an interface is up; otherwise, it displays an
error message.
- A new map3270 configuration file is included.
- ds now runs in its own session.
- dhcp.client is now smaller and updates
resolv.conf instead of overwriting it.
This version fixes a problem where dhcp.client packets were
rejected by some relay agents.
- slinger now has a new debug option (-d).
In addition, slinger now prevents the access of a file
outside of the
configuration directories (by using /../ in the path).
A debug message is printed when an attempt is made.
- rpc_so.100 fixes a bug when transferring floats and
doubles between a QNX and non-QNX machine.
- named-xfer fixes a bug where it would drop to priority 0.
- tn3270 was recompiled to link against the 4.25 shared libs.
- The pack() function (<socket.h>) was corrected.
- rpc3r.lib and rpc3s.lib fix a bug when
transferring floats and doubles between a QNX and non-QNX machine.
In addition to Patch A's changes, Patch B also includes changes to the
runtime
and
toolkit,
as described below.
- nfsd
- Patch A isn't compatible with nfsd, so a new nfsd
has been included in Patch B.
It corrects a problem where nfsd terminates with no
explanation.
It also corrects a problem where an attempt by a client to mount
or use exported directories would fail or hang.
- socket3r.lib, socket3s.lib,
socket_s.lib
- Corrected a problem related to the processing of the
hosts.equiv and rhosts files.
- snmp3r.lib, snmp3s.lib,
snmp_s.lib
- Corrected a memory leak.
- rpc3r.lib, rpc3s.lib,
rpc_s.lib
- Corrected a problem where sending a request too fast would cause a
SIGSEGV.
In addition to Patch B's changes, Patch C also includes the following
changes to the runtime:
- Static linked utils
- A small set of static link utilities was to be included with this
release for use in embedded systems.
This was because a few TCP/IP utilities and the shared libraries would
require a lot more resources to store than the same utilities linked
against the static libraries.
The shared libraries in this case weren't as small as they could be.
But the new versions of the shared libraries are significantly
smaller, so we believe that the static utilities are no longer needed.
- Socket
- The socket() function now returns EPFNOSUPPORT
for AF_UNIX.
- Sock(l)et
-
- Stops an invalid interface configuration from affecting the rest
of the interface list.
- Corrected a problem where an interface would be unusable if the
interface number were larger than the number of drivers
(Net -d).
- Corrected SIGSEGV errors.
- fcntl(F_GETFL) now returns the correct file-status flags.
- Sockppp
-
- Added Sockppp to this release.
- fcntl(F_GETFL) now returns the correct file-status flags.
- dhcp.client
-
- Corrected the problem where bind() can fail if a program
attempts to bind to a specific IP address instead of using
INADDR_ANY.
- Corrected all known configuration errors.
- Note that Localhost is automatically configured when the TCP/IP
stack is started and cannot be configured after a static interface
configuration if dhcp.client is being used.
This can affect the broadcast behavior of the stack if attempting to
use the 255.255.255.255 address.
- lpd
-
- A new command-line option allows anyone on the network to print
without validating the host.
- Corrected a problem related to reading directory entries.
- lprrm
- Corrected a problem related to reading directory entries.
- lpr
- Works with "vdir" manager.
- portmap
- Corrected a condition that may fail to detect a request from
remote machine to register.
- pppd
- Corrected a race condition that may cause pppd to fail
to detach itself from Sock(l)et.
- rlogind and rshd
- Both rlogin and rshd now support the +
symbol in the hosts.equiv or rhosts file.
- rtelnet
- Corrected a SIGSEGV problem.
- slinger
-
- Corrected problems related to lingering FD and child processing.
- Corrected a SIGSEGV problem related to the parsing
of CGI scripts.
- Added a new option to request that HTML files with SSI not be placed
in the browser cache.
- Corrected an HTML code error in error messages sent to the client.
- Updated the docs.
- snmp_so.100
- Corrected a memory leak.
- snmpd
- Obtained a new enterprise number for QNX.
- socket_so.100
- Corrected a problem related to the processing of the
host.equiv and rhosts files.
- telnetd
- Corrected a problem related to an unnecessary controlling terminal FD
passed to child process.
- mib.txt
- Added the new QNX enterprise number.
- rpc_so.100
- Corrected a condition that may fail to detect a request from
remote machine to register.
- mountd
-
- Deregisters from portmap on exit.
- Doesn't SIGSEGV when global options are listed in
exports file.
- nfsd
- Corrected a problem with the parent's exiting when the -t
option was specified to accept TCP connections only.
- ping
- Now returns the correct exit status.
- tftp and tftpd
- Corrected a bug where the size of data transferred was limited within
16M bytes.
In addition to Patch C's changes, Patch D also includes changes to the
runtime
and
toolkit,
as described below.
- Socket, Socklet, and socket_so.100
-
The following corrections were made to the socket libraries,
socket3r.lib, socket3s.lib, and
socket_s.lib:
- If you used the SOCK environment variable to specify
a remote node's Socket or Socklet, and your
application called fork() and then accept(),
the VC could be torn down and the file descriptor could be closed.
This has been corrected.
- Added a fix so that a + character could be used with the
hosts.equiv and .rhosts files.
- The check_rhosts_file variable is now exported from the
shared library.
 |
If you're updating from a version earlier than 4.23, note that the
pathnames of some of the standard TCP/IP runtime executables have
changed.
During the install procedure, you'll be given an opportunity
to have the paths to these executables corrected automatically in your
inetd.conf file.
You'll also be prompted to remove the old executables.
Please check your inetd.conf file to make sure that all
the entries are reasonable. |
A named.conf file is now used instead of
named.boot.
If a named.boot file is found on the target system during
the installation, you're asked if you want to automatically convert the
file with the named-bootconf utility, or wait until the
installation is complete to convert it manually or with the utility.
 |
If you use the utility, you must check the named.conf file
to ensure it's converted properly. |
You can find a sample named.conf file in
/etc/config/socket.
These items have been removed from the TCP/IP 4.25 runtime:
The 4.25 TCP/IP runtime isn't shipped with certain programs and
configuration files that were part of earlier releases.
If you've upgraded from an earlier release, see the following list of
deleted symlinks and the location of the files:
 |
The X in tcprt/X/ is the location of
your previous version (e.g. tcprt/4.23/). |
Deleted symlink
|
File location |
/usr/ucb/ripquery
|
/usr/tcprt/X/usr/ucb/ripquery |
/usr/ucb/gated
|
/usr/tcprt/X/usr/ucb/gated |
/bin/Net.atm200
|
/usr/tcprt/X/bin/Net.atm200 |
/etc/config/socket/named.boot
|
/usr/tcprt/X/etc/config/socket/named.boot |
/etc/config/socket/gated.conf.anl
|
/usr/tcprt/X/etc/config/socket/gated.conf.anl |
/etc/config/socket/gated.conf.aarnet
|
/usr/tcprt/X/etc/config/socket/gated.conf.aarnet |
/etc/config/socket/gated.conf.bgp-simple
|
/usr/tcprt/X/etc/config/socket/gated.conf.bgp-simple |
/etc/config/socket/gated.conf.concert-net
|
/usr/tcprt/X/etc/config/socket/gated.conf.concert-net |
/etc/config/socket/gated.conf.egp-simple1
|
/usr/tcprt/X/etc/config/socket/gated.conf.egp-simple1 |
/etc/config/socket/gated.conf.egp-simple2
|
/usr/tcprt/X/etc/config/socket/gated.conf.egp-simple2 |
/etc/config/socket/gated.conf.rip-simple
|
/usr/tcprt/X/etc/config/socket/gated.conf.rip-simple |
There's a report that if you start multiple Net.epic drivers
and then start Sock(l)et, then Sock(l)et faults.
This might happen if the drivers initialize themselves slowly.
The solution is to put a short sleep after starting your network
drivers.
To read our HTML-based online documentation, use the Photon Helpviewer,
our Voyager HTML browser, or any HTML browser.
If you don't have Photon, you can use tmhv, a text-mode help
viewer that we've posted in /usr/free/utils on QUICS.
This will let you view the online docs, but with some limitations (for
example, tmhv can't display images and doesn't handle tables
properly).
To obtain technical support for any QNX product, visit the
Technical Support section in the Support area
on our website (www.qnx.com).
You'll find a wide range of support options, including our free, web-based
Developer's Network.