2 * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
3 * Copyright (C) 1999-2002 Internet Software Consortium.
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.
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.
18 /* $Id: query.h,v 1.40 2007/06/19 23:46:59 tbox Exp $ */
21 #define NAMED_QUERY_H 1
25 #include <isc/types.h>
26 #include <isc/buffer.h>
27 #include <isc/netaddr.h>
29 #include <dns/types.h>
31 #include <named/types.h>
33 /*% nameserver database version structure */
34 typedef struct ns_dbversion {
36 dns_dbversion_t *version;
37 isc_boolean_t queryok;
38 ISC_LINK(struct ns_dbversion) link;
41 /*% nameserver query structure */
43 unsigned int attributes;
44 unsigned int restarts;
45 isc_boolean_t timerset;
47 dns_name_t * origqname;
48 unsigned int dboptions;
49 unsigned int fetchoptions;
52 dns_zone_t * authzone;
53 isc_boolean_t authdbset;
54 isc_boolean_t isreferral;
55 isc_mutex_t fetchlock;
57 isc_bufferlist_t namebufs;
58 ISC_LIST(ns_dbversion_t) activeversions;
59 ISC_LIST(ns_dbversion_t) freeversions;
62 #define NS_QUERYATTR_RECURSIONOK 0x0001
63 #define NS_QUERYATTR_CACHEOK 0x0002
64 #define NS_QUERYATTR_PARTIALANSWER 0x0004
65 #define NS_QUERYATTR_NAMEBUFUSED 0x0008
66 #define NS_QUERYATTR_RECURSING 0x0010
67 #define NS_QUERYATTR_CACHEGLUEOK 0x0020
68 #define NS_QUERYATTR_QUERYOKVALID 0x0040
69 #define NS_QUERYATTR_QUERYOK 0x0080
70 #define NS_QUERYATTR_WANTRECURSION 0x0100
71 #define NS_QUERYATTR_SECURE 0x0200
72 #define NS_QUERYATTR_NOAUTHORITY 0x0400
73 #define NS_QUERYATTR_NOADDITIONAL 0x0800
76 ns_query_init(ns_client_t *client);
79 ns_query_free(ns_client_t *client);
82 ns_query_start(ns_client_t *client);
85 ns_query_cancel(ns_client_t *client);
87 #endif /* NAMED_QUERY_H */