NOVELL TECHNICAL INFORMATION DOCUMENT TITLE: Updated Client TLI Files DOCUMENT ID: TID021941 DOCUMENT REVISION: A DATE: 06DEC94 ALERT STATUS: Yellow INFORMATION TYPE: Symptom Solution README FOR: TLIWS2.EXE NOVELL PRODUCT and VERSION: NetWare 3.11 NetWare 3.12 NetWare 4.0 NetWare 4.01 NetWare 4.02 ABSTRACT: TLIWS2.EXE contains TLI 4.x files and fixes. These fixes where provided to solve some obscure problems found after the major release cycle but still deemed important to provide to anyone experiencing problems. All these fixes were found in the OS/2 implementation. New DOS and Windows code is provided because many of the tli functions have common code between these versions. ----------------------------------------------------------------- DISCLAIMER THE ORIGIN OF THIS INFORMATION MAY BE INTERNAL OR EXTERNAL TO NOVELL. NOVELL MAKES EVERY EFFORT WITHIN ITS MEANS TO VERIFY THIS INFORMATION. HOWEVER, THE INFORMATION PROVIDED IN THIS DOCUMENT IS FOR YOUR INFORMATION ONLY. NOVELL MAKES NO EXPLICIT OR IMPLIED CLAIMS TO THE VALIDITY OF THIS INFORMATION. ----------------------------------------------------------------- SYMPTOM After a connection to an old SPX client, aplication was unable to send data. This occured if the application did a t_listen of a file descriptor bound with qlen of 1 and then did a taccept on a different descriptor. This was a timing issue that could only happen with a multithreaded OS/2 application. SOLUTION The socket did not have any listening buffers posted besides the 1 posted to get the connection. T_accept now checks the type of connection and handles it correctly, posting more listen buffers if necessary. SYMPTOM A multithreaded OS2 application was using a common IPX socket for both new SPXII connections and old SPX connections. The t_accept routine did not switch the options pointer to the new fd correctly. When both an SPX and SPXII connections were processing at the same time, the SPXII connection would be looking at the SPX endpoint options and asuming size negotiate was turned off just before sending the Session setup packet, causeing both endpoints to hang. SOLUTION The correct option pointer is setup for each endpoint earlier in the connection process, eliminating the conflict. SYMPTOM In OS2, if an exception handler is executed during a blocking t_listen, the blocking semaphore call used could fail causing a premature return from t_listen and making it look like a connection was received when indeed an exception (abort) handler had executed. SOLUTION The failure of a semaphore wait is now accounted for by aborting the tlisten and returning to the user. This was the only acceptable solution to processing of an aborted system call. A similar fix was previously put in t_rcv. Self-Extracting File Name: TLIWS2.EXE Revision: A Files Included Size Date Time \ TLIWS2.TXT (This File) \DOS\ POLL.H 2323 10-13-92 5:27p TIUSER.H 11638 01-20-94 10:37a TISPXIPX.H 6292 12-16-92 9:35a \DOS\MSC\ CTLI.LIB 95869 11-22-94 3:44p LTLI.LIB 97405 11-22-94 3:29p MTLI.LIB 82045 11-22-94 3:39p STLI.LIB 80509 11-22-94 3:34p \DOS\TCC\ CTLI.LIB 96965 11-22-94 3:54p LTLI.LIB 98501 11-22-94 3:46p MTLI.LIB 85189 11-22-94 3:52p STLI.LIB 83653 11-22-94 3:49p \OS2\ POLL.H 2323 10-13-92 5:27p TLI.DLL 20929 11-23-94 8:10a TLI.LIB 4833 11-23-94 8:10a TIUSER.H 11638 01-20-94 10:37a TISPXIPX.H 6292 12-16-92 9:35a TLI_SPX.DLL 55263 11-23-94 8:17a TLI_TCP.DLL 10833 08-30-94 12:03p \WIN\ TLI_SPX.DLL 52597 11-22-94 3:16p TLI_WIN.DLL 15713 11-22-94 2:59p TLI_WIN.LIB 4839 11-22-94 2:59p Installation Instructions: 1. Make a backup copy of your existing TLI files. 2. Copy the updated TLI files to your workstation's DOS/WIN/OS2 H and DLL directories. History: TLIWS1.EXE SYMPTOM In OS/2, the user would see a bogus T_DISCONNECT on t_look; and when the user would t_rcvdis, the system would GP fault. CAUSE An endpoint that did a t_snddis did a t_close before the disconnect ack came in. The disconnect ack processing freed the session table associated with the old connection; when the t_close closed the endpoint, the ack did not come in and the session table was never freed. The watchdogging routing assumed the session was active and tried to send bogus watchdogs. SOLUTION The watchdogging routine was cleaned to free orphaned session tables. SYMPTOM Users reported multiple Trap d problems. SOLUTION In this patch, Multiple NULL pointer checks were included when referencing the queue posted in the session table entries. These changes were made to enhance the error handling code. SYMPTOM Watchdog was possibly causing a Trap. SOLUTION This patch adds a call to cancel the watchdog if it was scheduled. This was possibly causing a Trap later in the code. It was possible that if a SPX session was destroyed, the Event might still trigger and access freed memory, causing a Trap D in OS/2. SYMPTOM The driver truncates or returns a receive error. SOLUTION The patch allocates listening buffers to be driver size instead of 576 bytes. This should only have an effect if the listening Event Control Block (ECB) receives a stray data or size negotiate packet while listening. This fix will keep the driver from truncating or giving a receive error. SYMPTOM Previously, if an OLD SPX connection had been an established endpoint, then the spxIIOptionNegotiat flag was set to SPX_OPTION_NEGOTIAT_ON. When a SPXII machine then tried to connect, it expected size negotiation to occur; however, this flag was never being reset, which caused the endpoint to hang. SOLUTION The patch changes the connect handler() check to see if the remote partner wants the size negotiation on. SOLUTION Update your current TLI files with the updated 4.x TLI files contained in this file. Installation Instructions: 1. Make a backup copy of your existing TLI files. 2. Copy the updated TLI files to your workstation's DOS/WIN/OS2 H and DLL directories. ----------------------------------------------------------------- Any trademarks referenced in this document are the property of their respective owners. Consult your product manuals for complete trademark information. ----------------------------------------------------------------- ÿ