2 * Copyright (c) 1995, 1996, 1997, 1998, 1999 Kungliga Tekniska Högskolan
3 * (Royal Institute of Technology, Stockholm, Sweden).
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
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.
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.
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
34 /* $Id: roken-common.h,v 1.19.2.2 2000/08/16 03:37:26 assar Exp $ */
36 #ifndef __ROKEN_COMMON_H__
37 #define __ROKEN_COMMON_H__
40 #define INADDR_NONE 0xffffffff
48 #define STDIN_FILENO 0
52 #define STDOUT_FILENO 1
56 #define STDERR_FILENO 2
60 #define max(a,b) (((a)>(b))?(a):(b))
64 #define min(a,b) (((a)<(b))?(a):(b))
76 #define openlog(id,option,facility) openlog((id),(option))
83 #define LOG_NDELAY 0x08
92 #define LOG_AUTHPRIV LOG_AUTH
100 #define O_ACCMODE 003
104 #define _PATH_DEV "/dev/"
107 #ifndef _PATH_DEVNULL
108 #define _PATH_DEVNULL "/dev/null"
112 #define _PATH_HEQUIV "/etc/hosts.equiv"
116 #define MAXPATHLEN (1024+4)
120 #define SIG_ERR ((RETSIGTYPE (*)())-1)
123 #ifndef HOST_NOT_FOUND
124 #define HOST_NOT_FOUND 1
132 #define NO_RECOVERY 3
140 #define NO_ADDRESS NO_DATA
152 struct sockaddr *ai_addr;
153 struct addrinfo *ai_next;
156 #define EAI_ADDRFAMILY 1 /* address family for nodename not supported */
157 #define EAI_AGAIN 2 /* temporary failure in name resolution */
158 #define EAI_BADFLAGS 3 /* invalid value for ai_flags */
159 #define EAI_FAIL 4 /* non-recoverable failure in name resolution */
160 #define EAI_FAMILY 5 /* ai_family not supported */
161 #define EAI_MEMORY 6 /* memory allocation failure */
162 #define EAI_NODATA 7 /* no address associated with nodename */
163 #define EAI_NONAME 8 /* nodename nor servname provided, or not known */
164 #define EAI_SERVICE 9 /* servname not supported for ai_socktype */
165 #define EAI_SOCKTYPE 10 /* ai_socktype not supported */
166 #define EAI_SYSTEM 11 /* system error returned in errno */
168 /* flags for getaddrinfo() */
170 #define AI_PASSIVE 0x01
171 #define AI_CANONNAME 0x02
172 #define AI_NUMERICHOST 0x04
177 * constants for inet_ntop
180 #ifndef INET_ADDRSTRLEN
181 #define INET_ADDRSTRLEN 16
184 #ifndef INET6_ADDRSTRLEN
185 #define INET6_ADDRSTRLEN 46
204 #ifndef HAVE___ATTRIBUTE__
205 #define __attribute__(x)
208 #if IRIX != 4 /* fix for compiler bug */
210 typedef RETSIGTYPE (*SigAction)(/* int??? */);
211 SigAction signal(int iSig, SigAction pAction); /* BSD compatible */
215 int ROKEN_LIB_FUNCTION simple_execve(const char*, char*const[], char*const[]);
216 int ROKEN_LIB_FUNCTION simple_execvp(const char*, char *const[]);
217 int ROKEN_LIB_FUNCTION simple_execlp(const char*, ...);
218 int ROKEN_LIB_FUNCTION simple_execle(const char*, ...);
220 void ROKEN_LIB_FUNCTION print_version(const char *);
222 void *ROKEN_LIB_FUNCTION emalloc (size_t);
223 void *ROKEN_LIB_FUNCTION erealloc (void *, size_t);
224 char *ROKEN_LIB_FUNCTION estrdup (const char *);
226 ssize_t ROKEN_LIB_FUNCTION eread (int fd, void *buf, size_t nbytes);
227 ssize_t ROKEN_LIB_FUNCTION ewrite (int fd, const void *buf, size_t nbytes);
230 socket_set_address_and_port (struct sockaddr *sa, const void *ptr, int port);
233 socket_addr_size (const struct sockaddr *sa);
236 socket_set_any (struct sockaddr *sa, int af);
239 socket_sockaddr_size (const struct sockaddr *sa);
242 socket_get_address (struct sockaddr *sa);
245 socket_get_port (const struct sockaddr *sa);
248 socket_set_port (struct sockaddr *sa, int port);
251 socket_set_debug (int sock);
254 socket_set_tos (int sock, int tos);
257 socket_set_reuseaddr (int sock, int val);
260 vstrcollect(va_list *ap);
263 strcollect(char *first, ...);
265 #endif /* __ROKEN_COMMON_H__ */