1 /* -*-C-*- 2 * 3 * Project : TRACE 4 * 5 * File : socklib.h 6 * 7 * Description 8 * 9 * Copyright (C) 1991 by Arne Helme, The TRACE project 10 * 11 * Rights to use this source is granted for all non-commercial and research 12 * uses. Creation of derivate forms of this software may be subject to 13 * restriction. Please obtain written permission from the author. 14 * 15 * This software is provided "as is" without any express or implied warranty. 16 * 17 * RCS: $Id$ 18 * 19 * Revision 1.1.1.1 1992/05/11 12:32:34 bjoerns 20 * XPilot v1.0 21 * 22 * Revision 1.2 91/10/02 08:38:20 08:38:20 arne (Arne Helme) 23 * "ANSI C prototypes added." 24 * 25 * Revision 1.1 91/10/02 08:34:53 08:34:53 arne (Arne Helme) 26 * Initial revision 27 * 28 */ 29 30 #ifndef _SOCKLIB_INCLUDED 31 #define _SOCKLIB_INCLUDED 32 33 /* Error values and their meanings */ 34 #define SL_ESOCKET 0 /* socket system call error */ 35 #define SL_EBIND 1 /* bind system call error */ 36 #define SL_ELISTEN 2 /* listen system call error */ 37 #define SL_EHOSTNAME 3 /* Invalid host name format */ 38 #define SL_ECONNECT 5 /* connect system call error */ 39 #define SL_ESHUTD 6 /* shutdown system call error */ 40 #define SL_ECLOSE 7 /* close system call error */ 41 #define SL_EWRONGHOST 8 /* message arrived from unspec. host */ 42 #define SL_ENORESP 9 /* No response */ 43 #define SL_ERECEIVE 10 /* Receive error */ 44 45 #ifndef _SOCKLIB_LIBSOURCE 46 #ifdef VMS 47 #include <in.h> /* for sockaddr_in */ 48 #ifndef MAXHOSTNAMELEN 49 #define MAXHOSTNAMELEN 64 50 #endif 51 #else 52 #include <netinet/in.h> /* for sockaddr_in */ 53 #include <arpa/inet.h> /* for in_addr */ 54 #ifdef UNIX_SOCKETS 55 #include <sys/un.h> /* for sockaddr_un */ 56 #endif 57 #endif 58 extern int 59 sl_errno, 60 sl_timeout_s, 61 sl_timeout_us, 62 sl_default_retries, 63 sl_broadcast_enabled, 64 x11_socket; 65 #ifdef UNIX_SOCKETS 66 extern struct sockaddr_un 67 #else 68 #ifdef USEIP6 69 extern struct sockaddr_in6 70 #else 71 extern struct sockaddr_in 72 #endif 73 #endif 74 sl_dgram_lastaddr; 75 76 #endif /* _SOCKLIB_LIBSOURCE */ 77 78 #ifdef __cplusplus 79 #ifndef __STDC__ 80 #define __STDC__ 1 81 #endif 82 #endif 83 84 #ifdef __STDC__ 85 extern void SetTimeout(int, int); 86 extern int CreateServerSocket(int); 87 extern int GetPortNum(int); 88 extern char *GetSockAddr(int); 89 extern int GetPeerName(int, char *, int); 90 extern int CreateClientSocket(char *, int); 91 extern int SocketAccept(int); 92 extern int SocketLinger(int); 93 extern int SetSocketReceiveBufferSize(int, int); 94 extern int SetSocketSendBufferSize(int, int); 95 extern int SetSocketNoDelay(int, int); 96 extern int SetSocketNonBlocking(int, int); 97 extern int SetSocketBroadcast(int, int); 98 extern int GetSocketError(int); 99 extern int SocketReadable(int); 100 extern int SocketRead(int, char *, int); 101 extern int SocketWrite(int, char *, int); 102 extern int SocketClose(int); 103 extern void SocketCloseAll(void); 104 extern int CreateDgramSocket(int); 105 extern int CreateDgramAddrSocket(char *, int); 106 extern int DgramBind(int fd, char *dotaddr, int port); 107 extern int DgramConnect(int, char *, int); 108 extern int DgramSend(int, char *, int, char *, int); 109 extern int DgramReceiveAny(int, char *, int); 110 extern int DgramReceive(int, char *, char *, int); 111 extern int DgramReply(int, char *, int); 112 extern int DgramRead(int fd, char *rbuf, int size); 113 extern int DgramWrite(int fd, char *wbuf, int size); 114 extern int DgramSendRec(int, char *, int, char *, int, char *, int); 115 extern char *DgramLastaddr(int fd); 116 extern char *DgramLastname(int fd); 117 extern int DgramLastport(int fd); 118 extern void DgramClose(int); 119 extern void GetLocalHostName(char *, unsigned); 120 #else /* __STDC__ */ 121 extern void SetTimeout(); 122 extern int CreateServerSocket(); 123 extern int GetPortNum(); 124 extern char *GetSockAddr(); 125 extern int GetPeerName(); 126 extern int CreateClientSocket(); 127 extern int SocketAccept(); 128 extern int SocketLinger(); 129 extern int SetSocketReceiveBufferSize(); 130 extern int SetSocketSendBufferSize(); 131 extern int SetSocketNoDelay(); 132 extern int SetSocketNonBlocking(); 133 extern int SetSocketBroadcast(); 134 extern int GetSocketError(); 135 extern int SocketReadable(); 136 extern int SocketRead(); 137 extern int SocketWrite(); 138 extern int SocketClose(); 139 extern int CreateDgramSocket(); 140 extern int CreateDgramAddrSocket(); 141 extern int DgramBind(); 142 extern int DgramConnect(); 143 extern int DgramSend(); 144 extern int DgramReceiveAny(); 145 extern int DgramReceive(); 146 extern int DgramReply(); 147 extern int DgramRead(); 148 extern int DgramWrite(); 149 extern int DgramSendRec(); 150 extern char *DgramLastaddr(); 151 extern char *DgramLastname(); 152 extern int DgramLastport(); 153 extern void DgramClose(); 154 extern void GetLocalHostName(); 155 #endif /* __STDC__ */ 156 157 #if !defined(select) && defined(__linux__) 158 #define select(N, R, W, E, T) select((N), \ 159 (fd_set*)(R), (fd_set*)(W), (fd_set*)(E), (T)) 160 #endif 161 162 #endif /* _SOCKLIB_INCLUDED */ 163 164 165