File: lsck.inf, Node: Known Bugs, Next: Credits, Prev: Miscellaneous Information, Up: Top Known Bugs ********** Winsock 1.x Interface - wsock ============================= * Broadcasts do not seem to work. It does not appear to be possible to enable them via the `setsockopt()' call. * Support for out-of-band (OOB) data is incomplete. For instance, there is no support for `SO_OOBINLINE' or a `SIGURG' handler. Winsock 2.x Interface - csock ============================= The Winsock 2.x support is provided by SOCK.VXD from the Windows '95 port of the Coda Network File System. The following are bugs in SOCK.VXD: * SOCK.VXD's sockets always behave as though the socket option `SO_REUSEADDR' is set, so local addresses are reused on the `bind()' call. * SOCK.VXD always closes stream sockets by sending a RST. This causes protocols that require graceful closures to fail, e.g. FTP data transfers. * SOCK.VXD seems to have problems receiving/sending more than 32K through a stream socket. The symptoms are that the DOS box blocks in SOCK.VXD (i.e. Ctrl+C will not kill the program and the DOS box has to be forcefully closed). * SOCK.VXD's `getsockname()' call does not seem to work. libsocket attempts to circumvent this by using a table of IP addresses to determine the local IP address, but this can easily fail. * SOCK.VXD has no out-of-band (OOB) support. * SOCK.VXD has a limit of the number of connections that can be `accept()''d. The number of connections is that specified by the earlier `listen()' call. * There are problems using firewall software: * AtGuard causes libsocket programs to crash, because of an interaction with its virtual device driver, `IAMDRV.VXD'. * ZoneAlarm will block any traffic that doesn't go to ports it considers to be safe, e.g. DNS (UDP, port 23). The solution is to disable ZoneAlarm. This is far from ideal. There may be problems with other firewall software, but no other programs have been reported yet. There are a number of bugs in the csock inteface within libsocket: * SOCK.VXD's `recv()' function is for stream sockets only; its `recvfrom()' function is for datagrams only. The csock interface does not distinguish properly between these two - i.e. it does not map the BSD socket call `recvfrom()' on a stream socket onto SOCK.VXD's `recv()' call. Common TCP/IP Bugs ================== The auto-configuration code does not work for dial-up or WAN links. It should work on LANs for statically or dynamically (DHCP) assigned IP addresses. A method is needed that will obtain the IP address information successfully in all cases. Unix Domain Sockets Interface - unix ==================================== The Unix domain socket code is an alpha state. It uses pairs of LAN Manager mailslots to implement bidirectional communication. It was written using the assumption that local mailslots are 100% reliable. Mailslots are not reliable; hence the code needs to be rewritten to cope with data loss. Windows NT ========== libsocket programs crash on exit on Windows NT. Although Windows NT is not supported by libsocket, these programs should abort gracefully.