
              NOVELL TECHNICAL INFORMATION DOCUMENT

TITLE:              WINSOCK (LWP for DOS and LAN WorkGroup)
DOCUMENT ID:        TID200009
DOCUMENT REVISION:  B
DATE:               23NOV93
ALERT STATUS:       Yellow
INFORMATION TYPE:   Symptom Solution
README FOR:         LWP168.EXE

NOVELL PRODUCT and VERSION:
LAN WorkPlace for DOS 4.1
LAN WorkGroup 4.1

ABSTRACT:

This patch adds support for Windows Sockets to LAN WorkPlace for DOS and LAN
WorkGroup v4.1.  Windows Sockets is an open interface for programming TCP/IP
applications for Microsoft Windows.  


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

     You should have already installed LAN WorkPlace for DOS or LAN WorkGroup
     v4.1 to use this WinSock release, or have otherwise obtained and
     installed the Novell TCP/IP Transport for DOS/MS Windows (found in
     various Novell and 3rd-party networking software packages).  With these
     files you will be able to run 3rd-party applications writtenspecifically
     for the WinSock API.

SOLUTION

     Apply LWP168.EXE

     Self-Extracting File Name:  LWP168.EXE     Revision:  B

     Files Included    Size      Date      Time

     \
       LWP168.TXT            (This File)
      WINSOCK.DLL      34640   11-12-93   10:20a     
     NOVASYNC.EXE       4672   09-28-93    5:00p    
     WLIBSOCK.DLL      43530   09-28-93    5:00p
        TCPIP.EXE      41188   09-28-93    5:00p    
         SNMP.EXE      32374   09-28-93    5:00p
       LWPCON.EXE     257504   09-28-93    5:00p
       LWPCON.HLP      44238   09-28-93    5:00p
       LWPCON.MSG      14334   09-28-93    5:00p
      WGTCPIP.EXE      65348   09-28-93    4:47p


     Installation Instructions:

     Execute the self-extracting file LWP168.EXE.  Copy the extracted files to
     the LAN WorkPlace BIN directory.  The default LAN WorkPlace BIN directory
     is C:\NET\BIN.  Be sure that the WINSOCK.DLL and WLIBSOCK.DLL in this
     directory are the only ones in your path; having others in \WINDOWS or
     \WINDOWS\SYSTEM will cause problems. 

     The WINSOCK.DLL relies on the WLIBSOCK.DLL, NOVASYNC.EXE, and TCPIP.EXE
     if you are using LAN WorkPlace for DOS or WGTCPIP.EXE if you are using
     LAN WorkGroup provided in this patch.  We have included updated versions
     of SNMP.EXE and LWPCON.EXE only because earlier versions of these files
     are not compatible with the TCPIP.EXE or WGTCPIP.EXE we are providing in
     this patch.  WINSOCK does not rely on SNMP.EXE or LWPCON.EXE.  


     Solution Specifics:

     Development with WINSOCK requires the WINSOCK.H file and the WINSOCK v1.1
     specification also an import library of WINSOCK.DLL must be created. The
     WINSOCK.H file and WINSOCK v1.1 specification can be obtained at the
     Internet address
     sunsite.unc.edu:/pub/micro/pc-stuff/ms-windows/winsock/winsock-1.1 .

     The following list identifies features of Windows Sockets that are
     unsupported or supported differently by Novell LAN WorkPlace for DOS:

     o MSG_PEEK is ignored on recv or recvfrom.

     o MSG_DONTROUTE is ignored on send or sendto.

     o The following socket control options are not supported and return
     WSAEINVAL if used:

          - SIOACATMARK

     o The following notes refer to Table 1, which summarizes handling of
     socket options:

     The following socket options default to TRUE and can not be changed to
     FALSE:

          - SO_BROADCAST

          - SO_DONTLINGER

          - SO_OOBINLINE

     The following socket options default to FALSE and can not be changed to
     TRUE:

          - SO_DEBUG

          - SO_DONTROUTE

          - SO_ERROR

     o Since SO_OOBINLINE is always true, specifying MSG_OOB on recv or
     recvfrom has no effect. Out-of-band data is always received as normal
     data. Out-of-band data may be sent.

     o The maximum number of sockets supported is 31.

     o You can create sockets of type SOCK_RAW using the socket function. The
     supported functions for raw sockets are:

          - socket

          - ioctlsocket to set non-blocking mode

          - sendto

          - recvfrom

          - closesocket

     Raw sockets are supported only for ping. The application is responsible
     for building and processing ICMP headers.

     o Either do not use shutdown() at all, or use shutdown() only when
     preparing to terminate communications (for example, to close the socket).

     o If you use shutdown() to disable sending, LAN WorkPlace TCP/IP sends a
     FIN packet. An application should not issue a send() or sendto() after a
     shutdown() that disabled sending.

     o An application should not issue a recv() or recvfrom() after a
     shutdown() that disabled receiving.


     o Table 1.  Handling of Socket Options
       ------------------------------------

         +-------------------------------------------------+
         | Option            Default    Setsockopt Support |
         +-------------------------------------------------+
         | SO_RCVBUF         4096       yes                |
         +-------------------------------------------------+
         | SO_SNDBUF         4096       yes                |
         +-------------------------------------------------+
         | SO_ACCEPTCONN     FALSE      NOPROTOOPT         |
         +-------------------------------------------------+
         | SO_BROADCAST      TRUE       NOPROTOOPT if chg  |
         +-------------------------------------------------+
         | SO_DONTLINGER     TRUE       NOPROTOOPT if chg  |
         +-------------------------------------------------+
         | SO_OOBINLINE      TRUE       NOPROTOOPT if chg  |
         +-------------------------------------------------+
         | SO_DEBUG          FALSE      NOPROTOOPT if chg  |
         +-------------------------------------------------+
         | SO_DONTROUTE      FALSE      NOPROTOOPT if chg  |
         +-------------------------------------------------+
         | SO_ERROR          FALSE      NOPROTOOPT if chg  |
         +-------------------------------------------------+
         | SO_TYPE           none       NOPROTOOPT         |
         +-------------------------------------------------+
         | SO_KEEPALIVE      FALSE      yes                |
         +-------------------------------------------------+
         | SO_REUSEADDR      FALSE      yes                |
         +-------------------------------------------------+
         | TCP_NODELAY       not supp   NOPROTOOPT         |
         +-------------------------------------------------+
         | SO_LINGER         not supp   NOPROTOOPT         |
         +-------------------------------------------------+

     Getsockopt for TCP_NODELAY and SO_LINGER return NOPROTOOPT. The other
     options are supported.
