home *** CD-ROM | disk | FTP | other *** search
-
- *************************************
- ********* UN57887 CORRECTIVE SERVICE DISKETTE *********
- *************************************
-
- TCP/IP 2.0 for OS/2 Corrective Service Diskette Information
-
- This README file for the corrective service diskette (CSD)
- reflects new and changed functions for TCP/IP 2.0 for OS/2,
- and corrections to the information. This CSD applies to the
- Programmer's Toolkit only.
-
- 1.0 TCP/IP 2.0 for OS/2 Programmer's Toolkit
-
- Topics included in this CSD are:
-
- 1.1 Installing this CSD
- 1.2 Previous CSD Information
- 1.3 Obtaining CSDs Electronically
-
- 2.0 Functions Changed
- 2.1 Programming Support
- 2.1.1 REXX File Transfer Protocol API
- 2.1.2 REXX Socket Support
- 2.2 New FTP API Calls
- 2.2.1 ftptrcoff() Stops tracing
- 2.2.2 ftptrcon() Starts tracing
- 2.2.3 ftpver() Returns the version number
- 2.3 Packet Size Restriction
- 2.4 Performance Considerations
-
- 3.0 APAR Fixes
-
- ----------------------------------------------------------------
-
-
- 1.1 Installing this CSD
-
- To install this CSD from a diskette at your workstation,
- insert the diskette into your A: drive and enter:
-
- A:>TCPINST
-
- ---------------------------------------------------------------------
-
-
- 1.2 Previous CSD Information
-
- This CSD incorporates the corrective service and new functions
- that were previously released in CSD UN54155. Please see the file
- README.PRG in the <tcpip>\DOC directory for a description of the
- functions that were originally released in UN54155.
-
- ----------------------------------------------------------------
-
-
- 1.3 Obtaining CSDs Electronically
-
- You can obtain Corrective Service Diskettes (CSDs)
- electronically by:
-
- o Using FTP to access SOFTWARE.WATSON.IBM.COM as Anonymous.
-
- NOTE: Fixes for TCP/IP for OS/2 are located in the
- pub\tcpip\os2 directory.
-
- o Establishing a modem connection to the NCSBBS bulletin
- board at 1-919-517-0001.
-
- NOTE: Set your modem settings to: none,8,1.
-
- The latest CSDs for TCP/IP Version 2.0 for OS/2 are shown
- in the following table:
-
- +----------------------------+---------------------------+
- | KIT NAME | PACKAGE NAME |
- +----------------------------+---------------------------+
- | Applications Kit | APP20CSD.PKG |
- +----------------------------+---------------------------+
- | Base Kit | TCP20CSD.PKG |
- +----------------------------+---------------------------+
- | Domain Name Server Kit | DNS20CSD.PKG |
- +----------------------------+---------------------------+
- | DOS/Windows Access Kit | DOS20CSD.PKG |
- +----------------------------+---------------------------+
- | Extended Networking Kit | XNT20CSD.PKG |
- +----------------------------+---------------------------+
- | Network File System Kit | NFS20CSD.PKG |
- +----------------------------+---------------------------+
- | OSF/Motif Kit | MOT20CSD.PKG |
- +----------------------------+---------------------------+
- | Programmer's Toolkit | PGM20CSD.PKG |
- +----------------------------+---------------------------+
- | X Window System Client Kit | XCL20CSD.PKG |
- +----------------------------+---------------------------+
- | X Window System Server Kit | PMX20CSD.PKG |
- +----------------------------+---------------------------+
-
- *************************************************
- ******** UN57887 CORRECTIVE SERVICE DISKETTE STARTS HERE *********
- *************************************************
-
- ----------------------------------------------------------------
-
-
- 2.0 Functions Changed
-
- None.
-
- ----------------------------------------------------------------
-
- 2.1 Programming Support
-
- The REXX File Transfer Protocol API and the REXX Socket
- Support are included in the Base Kit CSD.
-
-
- 2.1.1 REXX File Transfer Protocol API
-
- The REXX File Transfer Protocol (FTP) Application Program
- Interface (API) package provides access to the OS/2 TCP/IP FTP
- API's. It is assumed you are familiar with the basic FTP. The
- REXX FTP API function names are similar to the FTP subcommands.
-
- For more information and installation instructions,
- type: view RXFTP at an OS/2 command line after installing
- the Base Kit CSD or select the REXX FTP API icon in the
- TCP/IP folder.
-
-
- 2.1.2 REXX Socket Support
-
- The REXX Socket Support package provides access to the OS/2
- TCP/IP socket API's. It is assumed you are familiar with the
- basic socket APIs and that you can reference the OS/2 specific
- ones. For more information and installation instructions,
- type: view RXSOCKET at an OS/2 command line after installing
- the Base Kit CSD or select the REXX Sockets API icon in the
- TCP/IP folder.
-
-
-
- 2.2 New FTP API Calls
-
- ftptrcoff() Stops tracing
- ftptrcon() Starts tracing
- ftpver() Returns the version number
-
-
- 2.2.1 >>>>>>>>>>>>>>>>>>> ftptrcoff() <<<<<<<<<<<<<<<<<<<
-
- ftptrcoff() Call
-
-
- Syntax for ftptrcoff()
-
- #include <ftpapi.h>
-
- int ftptrcoff(void)
-
-
- Parameters
-
- none
-
-
- Return Values
-
- The ftptrcoff() always return a value of 0.
-
-
- Description
-
- The ftptrcoff() closes the trace file and stops
- tracing of the command and reply sequences sent
- over the control connection between the local
- and remote hosts.
-
-
- Example
-
- int rc;
- rc = ftptrcoff();
-
-
- 2.2.2 >>>>>>>>>>>>>>>>>>>> ftptrcon() <<<<<<<<<<<<<<<<<<<
-
- ftptrcon() Call
-
-
- Syntax for ftptrcon()
-
- #include <ftpapi.h>
-
- int ftptrcon(fileSpec, mode)
- char *fileSpec;
- int mode;
-
-
- Parameters
-
- fileSpec Identifies the name of the trace file.
-
- mode Specifies the trace mode as overwrite or append.
-
- M_OVERLAY - trace data overwrites previous
- information
-
- M_APPEND - trace data appends to previous
- information
-
-
- Return Values
-
- There are three possible return values for ftptrcon():
-
- 0 when successful
-
- TRCMODE indicates the value set into mode was invalid
-
- TRCOPEN indicates the trace file could not be opened
-
-
- Description
-
- The ftptrcon() call opens the trace file specified and
- starts tracing of the command and reply sequences
- sent over the control connection between the local
- and remote hosts. The trace file can be written
- over or appended to.
-
- No notification is provided if writing of trace data
- fails.
-
- Telnet command and reply sequences are not traced
- nor are command and reply sequences between the
- local host and a proxy host.
-
-
-
- Example
-
- To write the trace data into a file named api.trc
- in the C:\WORK directory, use:
-
-
- int rc;
- rc = ftptrcon("c\\work\\api.trc", M_OVERLAY);
-
-
- If the file already existed, the new trace data
- overwrites the previous trace data (overlay mode).
-
- 2.2.3 >>>>>>>>>>>>>>>>>>>> ftpver() <<<<<<<<<<<<<<<<<<<
-
- ftpver() Call
-
-
- Syntax for ftpver()
-
- #include <ftpapi.h>
-
- int ftpver(buf, buflen)
- char *buf;
- int buflen;
-
-
- Parameters
-
- buf Identifies the buffer to store the version
- string.
-
- buflen Specifies the length of the buffer.
-
-
-
- Return Values
-
- 0 when successful
-
- -1 when the complete version string could not be
- copied because the buffer length was too small.
-
-
- Description
-
- The ftpver() call stores the string containing the
- FTP API version. The string is truncated to fit into
- the buffer if it is longer than the buffer length.
- The returned string is always null-terminated.
-
-
- Example
-
- int rc;
- rc = ftpver(verBuf, bufLen);
-
-
- After the ftpver() call, the buffer contains the
- following: 2.0.1
-
-
- 2.3 Packet Size Restriction
-
- The packet size for sending and receiving data is limited
- to 32K of data. When the data sent or received is
- greater that 32K, the programmer must divide up the data
- so that no packet exceeds 32K.
-
- This restriction applied to all socket calls.
-
- For example, to handle this restriction for the send()
- function:
-
- int SendData(int socket, void *buffer, int len, int flags)
- {
- int rc;
- char *temp = (char *)buffer;
- int templen = len;
- int errno = 0;
- do {
- /* Never send more than 32K */
- rc = send(socket, temp, min(templen,0xfff), flags);
- if(rc > 0) {
- temp += rc;
- templen -= rc;
- } /* endif */
- } while (rc > 0) && templen); /*enddo */
-
- if(templen) { /* If there is still data, then */
- if(rc) errno = -sock_errno(); /* 1. there was an error */
- else errno = EPIPE; /* 2. the connection was closed */
- } /* endif */
-
- return(errno);
- }
-
-
-
- 2.4 Performance Considerations
-
- The TCP/IP device drivers will only accept 16-bit aligned
- pointers. The sockets DLL deals with this problem by
- allocating temporary memory and copying the corresponding
- data. To prevent this additional overhead, do not call
- the socket DLL with pointers that cross a 64K boundary.
- For calls that do not send or receive data, this is
- generally not a problem. It is suggested that the
- programmer allow the sockets DLL to deal with 16-bit
- boundaries in these situations.
-
- For send and receive type calls, the programmer should
- avoid passing pointers that cross 64K boundaries to
- prevent the sockets DLL from copying the data.
-
- For example, to handle this for the send() function:
-
- int SendData(int socket, void *buffer, int len, int flags)
- {
- int rc;
- char *temp = (char *)buffer;
- int templen = len;
- int errno = 0;
-
- do {
- /* Never send across a 64K boundary, and */
- /* never send more than 32K */
- rc = send(socket, temp, min(min(templen,0xffff-(temp&0xffff)+1), 0x7fff), flags);
-
- if(rc > 0) {
- temp += rc;
- templen -= rc;
- } /* endif */
-
- } while (rc > 0) && templen); /*enddo */
-
- if(templen) { /* If there is still data, then */
- if(rc) errno = -sock_errno(); /* 1. there was an error */
- else errno = EPIPE; /* 2. the connection was closed */
- } /* endif */
-
- return(errno);
- }
-
-
-
-
- ----------------------------------------------------------------
-
-
- 3.0 APAR Fixes
-
- The following is a list of APARs fixed in this CSD.
-
- +---------+-------------+-------------------------------+
- | APAR | MODULES | DESCRIPTION |
- | NUMBER | AFFECTED | |
- +---------+-------------+-------------------------------+
- | PN47687 | SO32DLL.DLL | Fixed: All calls to SO32DLL |
- | | TCP32DLL.DLL| and TCP32DLL are now |
- | | | reentrant. |
- +---------+-------------+-------------------------------+
- | PN50502 | FTPAPI.DLL | Fixed: Proper return code |
- | | | for FTPPUT() with AS/400 |
- | | | member files. |
- +---------+-------------+-------------------------------+
- | PN50587 | RPC.DLL | Fixed: General Protection |
- | | | Failure occurs when executing |
- | | | SVC GETARGS(). |
- +---------+-------------+-------------------------------+
- | PN51060 | RPCHOUT | Fixed: RPCGEN generates a |
- | | | syntactically incorrect .H |
- | | | file. |
- +---------+-------------+-------------------------------+
-
- The following APAR was fixed in CSD UN54155. This
- change is included in this CSD as well.
- +---------+-------------+-------------------------------+
- | PN50077 | PRCGEN.EXE | Fixed: |
- | | SNMP_DPI.H | IOCTL(SIOCADDRT/SIOCDELRT) did|
- | | SOCKET.H | not work when linking to |
- | | SO32DLL.LIB | 32-bit dll |
- +---------+-------------+-------------------------------+
-
-
-
- --------------------------- End of Document --------------------