Merge from vendor branch OPENSSL:
[dragonfly.git] / contrib / bind-9.3 / bin / named / include / named / query.h
1 /*
2  * Copyright (C) 2004  Internet Systems Consortium, Inc. ("ISC")
3  * Copyright (C) 1999-2002  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: query.h,v 1.28.2.3.8.6 2004/03/08 04:04:21 marka Exp $ */
19
20 #ifndef NAMED_QUERY_H
21 #define NAMED_QUERY_H 1
22
23 #include <isc/types.h>
24 #include <isc/buffer.h>
25 #include <isc/netaddr.h>
26
27 #include <dns/types.h>
28
29 #include <named/types.h>
30
31 typedef struct ns_dbversion {
32         dns_db_t                        *db;
33         dns_dbversion_t                 *version;
34         isc_boolean_t                   queryok;
35         ISC_LINK(struct ns_dbversion)   link;
36 } ns_dbversion_t;
37
38 struct ns_query {
39         unsigned int                    attributes;
40         unsigned int                    restarts;
41         isc_boolean_t                   timerset;
42         dns_name_t *                    qname;
43         dns_name_t *                    origqname;
44         unsigned int                    dboptions;
45         unsigned int                    fetchoptions;
46         dns_db_t *                      gluedb;
47         dns_db_t *                      authdb;
48         dns_zone_t *                    authzone;
49         isc_boolean_t                   authdbset;
50         isc_boolean_t                   isreferral;
51         isc_mutex_t                     fetchlock;
52         dns_fetch_t *                   fetch;
53         isc_bufferlist_t                namebufs;
54         ISC_LIST(ns_dbversion_t)        activeversions;
55         ISC_LIST(ns_dbversion_t)        freeversions;
56 };
57
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
70
71 isc_result_t
72 ns_query_init(ns_client_t *client);
73
74 void
75 ns_query_free(ns_client_t *client);
76
77 void
78 ns_query_start(ns_client_t *client);
79
80 void
81 ns_query_cancel(ns_client_t *client);
82
83 #endif /* NAMED_QUERY_H */