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.24 1999/12/05 13:25:40 assar Exp $ */
36 #ifndef __ROKEN_COMMON_H__
37 #define __ROKEN_COMMON_H__
40 #define INADDR_NONE 0xffffffff
43 #ifndef INADDR_LOOPBACK
44 #define INADDR_LOOPBACK 0x7f000001
52 #define STDIN_FILENO 0
56 #define STDOUT_FILENO 1
60 #define STDERR_FILENO 2
64 #define max(a,b) (((a)>(b))?(a):(b))
68 #define min(a,b) (((a)<(b))?(a):(b))
80 #define openlog(id,option,facility) openlog((id),(option))
87 #define LOG_NDELAY 0x08
96 #define LOG_AUTHPRIV LOG_AUTH
104 #define O_ACCMODE 003
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)
124 * error code for getipnodeby{name,addr}
127 #ifndef HOST_NOT_FOUND
128 #define HOST_NOT_FOUND 1
136 #define NO_RECOVERY 3
144 #define NO_ADDRESS NO_DATA
148 * error code for getaddrinfo
152 #define EAI_NOERROR 0 /* no error */
155 #ifndef EAI_ADDRFAMILY
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 */
169 #endif /* EAI_ADDRFAMILY */
171 /* flags for getaddrinfo() */
175 #define AI_PASSIVE 0x01
176 #define AI_CANONNAME 0x02
177 #define AI_NUMERICHOST 0x04
179 #endif /* AI_PASSIVE */
181 /* flags for getnameinfo() */
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
192 * constants for getnameinfo
196 #define NI_MAXHOST 1025
197 #define NI_MAXSERV 32
201 * constants for inet_ntop
204 #ifndef INET_ADDRSTRLEN
205 #define INET_ADDRSTRLEN 16
208 #ifndef INET6_ADDRSTRLEN
209 #define INET6_ADDRSTRLEN 46
228 #ifndef HAVE___ATTRIBUTE__
229 #define __attribute__(x)
232 #if IRIX != 4 /* fix for compiler bug */
234 typedef RETSIGTYPE (*SigAction)(/* int??? */);
235 SigAction signal(int iSig, SigAction pAction); /* BSD compatible */
239 int ROKEN_LIB_FUNCTION simple_execve(const char*, char*const[], char*const[]);
240 int ROKEN_LIB_FUNCTION simple_execvp(const char*, char *const[]);
241 int ROKEN_LIB_FUNCTION simple_execlp(const char*, ...);
242 int ROKEN_LIB_FUNCTION simple_execle(const char*, ...);
244 void ROKEN_LIB_FUNCTION print_version(const char *);
246 void *ROKEN_LIB_FUNCTION emalloc (size_t);
247 void *ROKEN_LIB_FUNCTION erealloc (void *, size_t);
248 char *ROKEN_LIB_FUNCTION estrdup (const char *);
250 ssize_t ROKEN_LIB_FUNCTION eread (int fd, void *buf, size_t nbytes);
251 ssize_t ROKEN_LIB_FUNCTION ewrite (int fd, const void *buf, size_t nbytes);
254 socket_set_address_and_port (struct sockaddr *sa, const void *ptr, int port);
257 socket_addr_size (const struct sockaddr *sa);
260 socket_set_any (struct sockaddr *sa, int af);
263 socket_sockaddr_size (const struct sockaddr *sa);
266 socket_get_address (struct sockaddr *sa);
269 socket_get_port (const struct sockaddr *sa);
272 socket_set_port (struct sockaddr *sa, int port);
275 socket_set_debug (int sock);
278 socket_set_tos (int sock, int tos);
281 socket_set_reuseaddr (int sock, int val);
283 #endif /* __ROKEN_COMMON_H__ */