roken-common.h revision 55682
1/* 2 * Copyright (c) 1995, 1996, 1997, 1998, 1999 Kungliga Tekniska H�gskolan 3 * (Royal Institute of Technology, Stockholm, Sweden). 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 13 * 2. Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * 17 * 3. Neither the name of the Institute nor the names of its contributors 18 * may be used to endorse or promote products derived from this software 19 * without specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 */ 33 34/* $Id: roken-common.h,v 1.24 1999/12/05 13:25:40 assar Exp $ */ 35 36#ifndef __ROKEN_COMMON_H__ 37#define __ROKEN_COMMON_H__ 38 39#ifndef INADDR_NONE 40#define INADDR_NONE 0xffffffff 41#endif 42 43#ifndef INADDR_LOOPBACK 44#define INADDR_LOOPBACK 0x7f000001 45#endif 46 47#ifndef SOMAXCONN 48#define SOMAXCONN 5 49#endif 50 51#ifndef STDIN_FILENO 52#define STDIN_FILENO 0 53#endif 54 55#ifndef STDOUT_FILENO 56#define STDOUT_FILENO 1 57#endif 58 59#ifndef STDERR_FILENO 60#define STDERR_FILENO 2 61#endif 62 63#ifndef max 64#define max(a,b) (((a)>(b))?(a):(b)) 65#endif 66 67#ifndef min 68#define min(a,b) (((a)<(b))?(a):(b)) 69#endif 70 71#ifndef TRUE 72#define TRUE 1 73#endif 74 75#ifndef FALSE 76#define FALSE 0 77#endif 78 79#ifndef LOG_DAEMON 80#define openlog(id,option,facility) openlog((id),(option)) 81#define LOG_DAEMON 0 82#endif 83#ifndef LOG_ODELAY 84#define LOG_ODELAY 0 85#endif 86#ifndef LOG_NDELAY 87#define LOG_NDELAY 0x08 88#endif 89#ifndef LOG_CONS 90#define LOG_CONS 0 91#endif 92#ifndef LOG_AUTH 93#define LOG_AUTH 0 94#endif 95#ifndef LOG_AUTHPRIV 96#define LOG_AUTHPRIV LOG_AUTH 97#endif 98 99#ifndef F_OK 100#define F_OK 0 101#endif 102 103#ifndef O_ACCMODE 104#define O_ACCMODE 003 105#endif 106 107#ifndef _PATH_DEVNULL 108#define _PATH_DEVNULL "/dev/null" 109#endif 110 111#ifndef _PATH_HEQUIV 112#define _PATH_HEQUIV "/etc/hosts.equiv" 113#endif 114 115#ifndef MAXPATHLEN 116#define MAXPATHLEN (1024+4) 117#endif 118 119#ifndef SIG_ERR 120#define SIG_ERR ((RETSIGTYPE (*)())-1) 121#endif 122 123/* 124 * error code for getipnodeby{name,addr} 125 */ 126 127#ifndef HOST_NOT_FOUND 128#define HOST_NOT_FOUND 1 129#endif 130 131#ifndef TRY_AGAIN 132#define TRY_AGAIN 2 133#endif 134 135#ifndef NO_RECOVERY 136#define NO_RECOVERY 3 137#endif 138 139#ifndef NO_DATA 140#define NO_DATA 4 141#endif 142 143#ifndef NO_ADDRESS 144#define NO_ADDRESS NO_DATA 145#endif 146 147/* 148 * error code for getaddrinfo 149 */ 150 151#ifndef EAI_NOERROR 152#define EAI_NOERROR 0 /* no error */ 153#endif 154 155#ifndef EAI_ADDRFAMILY 156 157#define EAI_ADDRFAMILY 1 /* address family for nodename not supported */ 158#define EAI_AGAIN 2 /* temporary failure in name resolution */ 159#define EAI_BADFLAGS 3 /* invalid value for ai_flags */ 160#define EAI_FAIL 4 /* non-recoverable failure in name resolution */ 161#define EAI_FAMILY 5 /* ai_family not supported */ 162#define EAI_MEMORY 6 /* memory allocation failure */ 163#define EAI_NODATA 7 /* no address associated with nodename */ 164#define EAI_NONAME 8 /* nodename nor servname provided, or not known */ 165#define EAI_SERVICE 9 /* servname not supported for ai_socktype */ 166#define EAI_SOCKTYPE 10 /* ai_socktype not supported */ 167#define EAI_SYSTEM 11 /* system error returned in errno */ 168 169#endif /* EAI_ADDRFAMILY */ 170 171/* flags for getaddrinfo() */ 172 173#ifndef AI_PASSIVE 174 175#define AI_PASSIVE 0x01 176#define AI_CANONNAME 0x02 177#define AI_NUMERICHOST 0x04 178 179#endif /* AI_PASSIVE */ 180 181/* flags for getnameinfo() */ 182 183#ifndef NI_DGRAM 184#define NI_DGRAM 0x01 185#define NI_NAMEREQD 0x02 186#define NI_NOFQDN 0x04 187#define NI_NUMERICHOST 0x08 188#define NI_NUMERICSERV 0x10 189#endif 190 191/* 192 * constants for getnameinfo 193 */ 194 195#ifndef NI_MAXHOST 196#define NI_MAXHOST 1025 197#define NI_MAXSERV 32 198#endif 199 200/* 201 * constants for inet_ntop 202 */ 203 204#ifndef INET_ADDRSTRLEN 205#define INET_ADDRSTRLEN 16 206#endif 207 208#ifndef INET6_ADDRSTRLEN 209#define INET6_ADDRSTRLEN 46 210#endif 211 212/* 213 * for shutdown(2) 214 */ 215 216#ifndef SHUT_RD 217#define SHUT_RD 0 218#endif 219 220#ifndef SHUT_WR 221#define SHUT_WR 1 222#endif 223 224#ifndef SHUT_RDWR 225#define SHUT_RDWR 2 226#endif 227 228#ifndef HAVE___ATTRIBUTE__ 229#define __attribute__(x) 230#endif 231 232#if IRIX != 4 /* fix for compiler bug */ 233#ifdef RETSIGTYPE 234typedef RETSIGTYPE (*SigAction)(/* int??? */); 235SigAction signal(int iSig, SigAction pAction); /* BSD compatible */ 236#endif 237#endif 238 239int ROKEN_LIB_FUNCTION simple_execve(const char*, char*const[], char*const[]); 240int ROKEN_LIB_FUNCTION simple_execvp(const char*, char *const[]); 241int ROKEN_LIB_FUNCTION simple_execlp(const char*, ...); 242int ROKEN_LIB_FUNCTION simple_execle(const char*, ...); 243 244void ROKEN_LIB_FUNCTION print_version(const char *); 245 246void *ROKEN_LIB_FUNCTION emalloc (size_t); 247void *ROKEN_LIB_FUNCTION erealloc (void *, size_t); 248char *ROKEN_LIB_FUNCTION estrdup (const char *); 249 250ssize_t ROKEN_LIB_FUNCTION eread (int fd, void *buf, size_t nbytes); 251ssize_t ROKEN_LIB_FUNCTION ewrite (int fd, const void *buf, size_t nbytes); 252 253void 254socket_set_address_and_port (struct sockaddr *sa, const void *ptr, int port); 255 256size_t 257socket_addr_size (const struct sockaddr *sa); 258 259void 260socket_set_any (struct sockaddr *sa, int af); 261 262size_t 263socket_sockaddr_size (const struct sockaddr *sa); 264 265void * 266socket_get_address (struct sockaddr *sa); 267 268int 269socket_get_port (const struct sockaddr *sa); 270 271void 272socket_set_port (struct sockaddr *sa, int port); 273 274void 275socket_set_debug (int sock); 276 277void 278socket_set_tos (int sock, int tos); 279 280void 281socket_set_reuseaddr (int sock, int val); 282 283#endif /* __ROKEN_COMMON_H__ */ 284