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