2 * Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
3 * Copyright (C) 1999-2002 Internet Software Consortium.
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.
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.28.2.3.8.6 2004/03/08 04:04:21 marka Exp $ */
21 #define NAMED_QUERY_H 1
23 #include <isc/types.h>
24 #include <isc/buffer.h>
25 #include <isc/netaddr.h>
27 #include <dns/types.h>
29 #include <named/types.h>
31 typedef struct ns_dbversion {
33 dns_dbversion_t *version;
34 isc_boolean_t queryok;
35 ISC_LINK(struct ns_dbversion) link;
39 unsigned int attributes;
40 unsigned int restarts;
41 isc_boolean_t timerset;
43 dns_name_t * origqname;
44 unsigned int dboptions;
45 unsigned int fetchoptions;
48 dns_zone_t * authzone;
49 isc_boolean_t authdbset;
50 isc_boolean_t isreferral;
51 isc_mutex_t fetchlock;
53 isc_bufferlist_t namebufs;
54 ISC_LIST(ns_dbversion_t) activeversions;
55 ISC_LIST(ns_dbversion_t) freeversions;
58 #define NS_QUERYATTR_RECURSIONOK 0x0001
59 #define NS_QUERYATTR_CACHEOK 0x0002
60 #define NS_QUERYATTR_PARTIALANSWER 0x0004
61 #define NS_QUERYATTR_NAMEBUFUSED 0x0008
62 #define NS_QUERYATTR_RECURSING 0x0010
63 #define NS_QUERYATTR_CACHEGLUEOK 0x0020
64 #define NS_QUERYATTR_QUERYOKVALID 0x0040
65 #define NS_QUERYATTR_QUERYOK 0x0080
66 #define NS_QUERYATTR_WANTRECURSION 0x0100
67 #define NS_QUERYATTR_SECURE 0x0200
68 #define NS_QUERYATTR_NOAUTHORITY 0x0400
69 #define NS_QUERYATTR_NOADDITIONAL 0x0800
72 ns_query_init(ns_client_t *client);
75 ns_query_free(ns_client_t *client);
78 ns_query_start(ns_client_t *client);
81 ns_query_cancel(ns_client_t *client);
83 #endif /* NAMED_QUERY_H */