Return to var.h CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / ipsec-tools / src / racoon |
1.1 ! misho 1: /* $NetBSD: var.h,v 1.5 2007/06/06 15:37:15 vanhu Exp $ */ ! 2: ! 3: /* Id: var.h,v 1.6 2004/11/20 16:16:59 monas Exp */ ! 4: ! 5: /* ! 6: * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. ! 7: * All rights reserved. ! 8: * ! 9: * Redistribution and use in source and binary forms, with or without ! 10: * modification, are permitted provided that the following conditions ! 11: * are met: ! 12: * 1. Redistributions of source code must retain the above copyright ! 13: * notice, this list of conditions and the following disclaimer. ! 14: * 2. Redistributions in binary form must reproduce the above copyright ! 15: * notice, this list of conditions and the following disclaimer in the ! 16: * documentation and/or other materials provided with the distribution. ! 17: * 3. Neither the name of the project 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 PROJECT 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 PROJECT 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: #ifndef _VAR_H ! 35: #define _VAR_H ! 36: ! 37: #if !defined(_VAR_H_) ! 38: #define _VAR_H_ ! 39: ! 40: #define MAX3(a, b, c) (a > b ? (a > c ? a : c) : (b > c ? b : c)) ! 41: ! 42: #define ISSET(exp, bit) (((exp) & (bit)) == (bit)) ! 43: ! 44: #define LALIGN(a) \ ! 45: ((a) > 0 ? ((a) &~ (sizeof(long) - 1)) : sizeof(long)) ! 46: ! 47: #define RNDUP(a) \ ! 48: ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) ! 49: ! 50: #define ARRAYLEN(a) (sizeof(a)/sizeof(a[0])) ! 51: ! 52: #define BUFSIZE 5120 ! 53: ! 54: #ifndef FALSE ! 55: #define FALSE 0 ! 56: #endif ! 57: #ifndef TRUE ! 58: #define TRUE 1 ! 59: #endif ! 60: ! 61: #ifdef ENABLE_STATS ! 62: #include <sys/time.h> ! 63: #endif ! 64: #include <sys/socket.h> ! 65: ! 66: /* ! 67: * use of GETNAMEINFO(x, y, NULL) is not politically correct, ! 68: * as sizeof(NULL) would be 4, not 0. Also, gcc-3.4.2+ bombs on it. ! 69: * In such cases, use GETNAMEINFO_NULL(x, y) ! 70: */ ! 71: #include <sys/socket.h> ! 72: #include <netdb.h> ! 73: ! 74: /* var.h is used from non-racoon code (like eaytest), so we can't use niflags */ ! 75: #define NIFLAGS (NI_NUMERICHOST | NI_NUMERICSERV) ! 76: ! 77: #define GETNAMEINFO(x, y, z) \ ! 78: do { \ ! 79: if (getnameinfo((x), sysdep_sa_len(x), (y), sizeof(y), (z), sizeof(z), \ ! 80: NIFLAGS) != 0) { \ ! 81: if (y != NULL) \ ! 82: strncpy((y), "(invalid)", sizeof(y)); \ ! 83: if (z != NULL) \ ! 84: strncpy((z), "(invalid)", sizeof(z)); \ ! 85: } \ ! 86: } while (0); ! 87: ! 88: #define GETNAMEINFO_NULL(x, y) \ ! 89: do { \ ! 90: if (getnameinfo((x), sysdep_sa_len(x), (y), sizeof(y), NULL, 0, \ ! 91: NIFLAGS) != 0) { \ ! 92: if (y != NULL) \ ! 93: strncpy((y), "(invalid)", sizeof(y)); \ ! 94: } \ ! 95: } while (0); ! 96: ! 97: #include <sys/queue.h> ! 98: #ifndef LIST_FOREACH ! 99: #define LIST_FOREACH(elm, head, field) \ ! 100: for (elm = LIST_FIRST(head); elm; elm = LIST_NEXT(elm, field)) ! 101: #endif ! 102: ! 103: #include "gcmalloc.h" ! 104: ! 105: #endif /*!defined(_VAR_H_)*/ ! 106: ! 107: #endif /* _VAR_H */