query.h 2.45 KB
Newer Older
Bob Halley's avatar
add  
Bob Halley committed
1
/*
Mark Andrews's avatar
Mark Andrews committed
2
 * Copyright (C) 2004, 2005  Internet Systems Consortium, Inc. ("ISC")
Mark Andrews's avatar
Mark Andrews committed
3
 * Copyright (C) 1999-2002  Internet Software Consortium.
4
 *
Bob Halley's avatar
add  
Bob Halley committed
5
6
7
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
8
 *
Mark Andrews's avatar
Mark Andrews committed
9
10
11
12
13
14
15
 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
 * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 * PERFORMANCE OF THIS SOFTWARE.
Bob Halley's avatar
add  
Bob Halley committed
16
17
 */

Mark Andrews's avatar
Mark Andrews committed
18
/* $Id: query.h,v 1.38 2005/04/29 00:22:32 marka Exp $ */
David Lawrence's avatar
David Lawrence committed
19

20
21
#ifndef NAMED_QUERY_H
#define NAMED_QUERY_H 1
Bob Halley's avatar
add  
Bob Halley committed
22

23
24
/*! \file */

Bob Halley's avatar
Bob Halley committed
25
26
#include <isc/types.h>
#include <isc/buffer.h>
27
#include <isc/netaddr.h>
Bob Halley's avatar
Bob Halley committed
28
29
30

#include <dns/types.h>

Bob Halley's avatar
add  
Bob Halley committed
31
32
#include <named/types.h>

33
/*% nameserver database version structure */
34
35
36
typedef struct ns_dbversion {
	dns_db_t			*db;
	dns_dbversion_t			*version;
37
	isc_boolean_t			queryok;
38
39
40
	ISC_LINK(struct ns_dbversion)	link;
} ns_dbversion_t;

41
/*% nameserver query structure */
Bob Halley's avatar
Bob Halley committed
42
struct ns_query {
43
	unsigned int			attributes;
Bob Halley's avatar
Bob Halley committed
44
	unsigned int			restarts;
45
	isc_boolean_t			timerset;
Bob Halley's avatar
Bob Halley committed
46
	dns_name_t *			qname;
47
	dns_name_t *			origqname;
48
	unsigned int			dboptions;
49
	unsigned int			fetchoptions;
Bob Halley's avatar
Bob Halley committed
50
	dns_db_t *			gluedb;
Michael Graff's avatar
   
Michael Graff committed
51
	dns_db_t *			authdb;
52
53
54
	dns_zone_t *			authzone;
	isc_boolean_t			authdbset;
	isc_boolean_t			isreferral;
55
	isc_mutex_t			fetchlock;
56
	dns_fetch_t *			fetch;
57
	isc_bufferlist_t		namebufs;
58
59
	ISC_LIST(ns_dbversion_t)	activeversions;
	ISC_LIST(ns_dbversion_t)	freeversions;
Bob Halley's avatar
Bob Halley committed
60
61
};

62
63
64
65
66
67
68
69
70
#define NS_QUERYATTR_RECURSIONOK	0x0001
#define NS_QUERYATTR_CACHEOK		0x0002
#define NS_QUERYATTR_PARTIALANSWER	0x0004
#define NS_QUERYATTR_NAMEBUFUSED	0x0008
#define NS_QUERYATTR_RECURSING		0x0010
#define NS_QUERYATTR_CACHEGLUEOK	0x0020
#define NS_QUERYATTR_QUERYOKVALID	0x0040
#define NS_QUERYATTR_QUERYOK		0x0080
#define NS_QUERYATTR_WANTRECURSION	0x0100
71
#define NS_QUERYATTR_SECURE		0x0200
72
73
#define NS_QUERYATTR_NOAUTHORITY	0x0400
#define NS_QUERYATTR_NOADDITIONAL	0x0800
74

Bob Halley's avatar
Bob Halley committed
75
76
77
78
79
80
81
82
isc_result_t
ns_query_init(ns_client_t *client);

void
ns_query_free(ns_client_t *client);

void
ns_query_start(ns_client_t *client);
Bob Halley's avatar
add  
Bob Halley committed
83

84
85
86
void
ns_query_cancel(ns_client_t *client);

87
#endif /* NAMED_QUERY_H */