Redo argv processing to better conform to standards. A NULL argv is no
[dragonfly.git] / contrib / bind-9.2.4rc7 / lib / lwres / context_p.h
1 /*
2  * Copyright (C) 2004  Internet Systems Consortium, Inc. ("ISC")
3  * Copyright (C) 2000, 2001  Internet Software Consortium.
4  *
5  * Permission to use, copy, modify, and 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.12.2.1 2004/03/09 06:12:32 marka Exp $ */
19
20 #ifndef LWRES_CONTEXT_P_H
21 #define LWRES_CONTEXT_P_H 1
22
23 /*
24  * Helper functions, assuming the context is always called "ctx" in
25  * the scope these functions are called from.
26  */
27 #define CTXMALLOC(len)          ctx->malloc(ctx->arg, (len))
28 #define CTXFREE(addr, len)      ctx->free(ctx->arg, (addr), (len))
29
30 #define LWRES_DEFAULT_TIMEOUT   120     /* 120 seconds for a reply */
31
32 /*
33  * Not all the attributes here are actually settable by the application at
34  * this time.
35  */
36 struct lwres_context {
37         unsigned int            timeout;        /* time to wait for reply */
38         lwres_uint32_t          serial;         /* serial number state */
39
40         /*
41          * For network I/O.
42          */
43         int                     sock;           /* socket to send on */
44         lwres_addr_t            address;        /* address to send to */
45
46         /*
47          * Function pointers for allocating memory.
48          */
49         lwres_malloc_t          malloc;
50         lwres_free_t            free;
51         void                   *arg;
52
53         /*
54          * resolv.conf-like data
55          */
56         lwres_conf_t            confdata;
57 };
58
59 #endif /* LWRES_CONTEXT_P_H */