1/* 2 * Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC") 3 * Copyright (C) 2000, 2001 Internet Software Consortium. 4 * 5 * Permission to use, copy, modify, and/or distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 10 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 11 * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 12 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 13 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 14 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 15 * PERFORMANCE OF THIS SOFTWARE. 16 */ 17 18/* $Id: context_p.h,v 1.19 2008/12/17 23:47:58 tbox Exp $ */ 19 20#ifndef LWRES_CONTEXT_P_H 21#define LWRES_CONTEXT_P_H 1 22 23/*! \file */ 24 25/*@{*/ 26/** 27 * Helper functions, assuming the context is always called "ctx" in 28 * the scope these functions are called from. 29 */ 30#define CTXMALLOC(len) ctx->malloc(ctx->arg, (len)) 31#define CTXFREE(addr, len) ctx->free(ctx->arg, (addr), (len)) 32/*@}*/ 33 34#define LWRES_DEFAULT_TIMEOUT 120 /* 120 seconds for a reply */ 35 36/** 37 * Not all the attributes here are actually settable by the application at 38 * this time. 39 */ 40struct lwres_context { 41 unsigned int timeout; /*%< time to wait for reply */ 42 lwres_uint32_t serial; /*%< serial number state */ 43 44 /* 45 * For network I/O. 46 */ 47 int sock; /*%< socket to send on */ 48 lwres_addr_t address; /*%< address to send to */ 49 int use_ipv4; /*%< use IPv4 transaction */ 50 int use_ipv6; /*%< use IPv6 transaction */ 51 52 /*@{*/ 53 /* 54 * Function pointers for allocating memory. 55 */ 56 lwres_malloc_t malloc; 57 lwres_free_t free; 58 void *arg; 59 /*@}*/ 60 61 /*% 62 * resolv.conf-like data 63 */ 64 lwres_conf_t confdata; 65}; 66 67#endif /* LWRES_CONTEXT_P_H */ 68