tcpip.h revision 1.1.1.1
1/**************************************************************** 2 * 3 * TCPIP.H - Portable TCP/IP header file 4 * 5 * TCP/IP on OS/2 is an add-on and thus is not fully integrated 6 * with the operating system. To ensure portability, follow 7 * these rules: 8 * 9 * * Always call SockInit() at the beginning of your program 10 * and check that it returns TRUE. 11 * 12 * * Use SockSend() & SockRecv() instead of read(), write(), 13 * send(), or recv() when working with sockets. 14 * 15 * * Use SockClose() instead of close() with sockets. 16 * 17 * * Use SOCK_ERRNO when using functions that use or return 18 * sockets, such as SockSend() or accept(). 19 * 20 * * Use HOST_ERRNO when using gethostbyname() or gethostbyaddr() 21 * functions. 22 * 23 * * As far as I can tell, getservbyname() and related functions 24 * never set any error variable. 25 * 26 * * Use SockStrError() & HostStrError() to convert SOCK_ERRNO 27 * and HOST_ERRNO to error strings. 28 * 29 * * In .MAK files, include $(TCPIP_MAK) & use $(TCPIPLIB) 30 * when linking applications using TCP/IP. 31 * 32 ****************************************************************/ 33 34#if !defined( IN_TCPIP_H ) 35#define IN_TCPIP_H 36 37#include <sys/types.h> 38#include <sys/stat.h> 39#include <sys/socket.h> 40#include <sys/ioctl.h> 41#include <netinet/in.h> 42#include <netdb.h> 43#include <errno.h> 44 45#if defined( TCPIP_IBM ) 46# include <types.h> 47# if !defined( TCPIP_IBM_NOHIDE ) 48# define send IbmSockSend 49# define recv IbmSockRecv 50# endif 51#endif 52 53#if defined( TCPIP_IBM ) 54# define BSD_SELECT 55# include <sys/select.h> 56# include <sys/time.h> 57# include <nerrno.h> 58# include <utils.h> 59# if defined( MICROSOFT ) 60# define SOCK_ERRNO (tcperrno()) 61# else 62# define SOCK_ERRNO (sock_errno()) 63# endif 64# define HOST_ERRNO (h_errno) 65# define SockClose(S) soclose(S) 66# define SockInit() (!sock_init()) 67# define SockSend IbmSockSend 68# define SockRecv IbmSockRecv 69 70const char *HostStrError(int HostErrno); 71const char *SockStrError(int SockErrno); 72 73int IbmSockSend (int Socket, const void *Buffer, int Len, int Flags); 74int IbmSockRecv (int Socket, const void *Buffer, int Len, int Flags); 75 76#if !defined( h_errno ) 77extern int h_errno; /* IBM forgot to declare this in current header files */ 78#endif 79 80#elif defined( __unix ) 81# if defined( sgi ) /* SGI incorrectly defines FD_ZERO in sys/select.h */ 82# include <bstring.h> 83# endif 84# if defined( sunos ) 85extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *); 86# else 87# include <sys/select.h> 88# endif 89# include <sys/time.h> 90# include <errno.h> 91# include <arpa/inet.h> 92# define SOCK_ERRNO errno 93# define HOST_ERRNO h_errno 94# define SockClose(S) close(S) 95# define SockInit() TRUE 96# define SockSend send 97# define SockRecv recv 98# define SockStrError(E) strerror(E) 99 100const char *HostStrError( int HostErrno ); 101 102#else 103# error Undefined version of TCP/IP specified 104 105#endif 106 107#endif 108