author | William.D.Johnston <William.D.Johnston@oracle.com> |
Fri, 12 Dec 2014 08:20:34 -0800 | |
changeset 3541 | 37a03b73b5a4 |
permissions | -rw-r--r-- |
3541
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1 |
This patch was obtained from ISC for 9.6-ESV-R11-P1. The patch can |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
2 |
only be obtained from [email protected] on an as needed |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
3 |
basis. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
4 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
5 |
diff --git a/CHANGES b/CHANGES |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
6 |
index 178f73d..8ace4fb 100644 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
7 |
--- a/CHANGES |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
8 |
+++ b/CHANGES |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
9 |
@@ -1,3 +1,17 @@ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
10 |
+ --- 9.6-ESV-R11-P1 released --- |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
11 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
12 |
+4006. [security] A flaw in delegation handling could be exploited |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
13 |
+ to put named into an infinite loop. This has |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
14 |
+ been addressed by placing limits on the number |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
15 |
+ of levels of recursion named will allow (default 7), |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
16 |
+ and the number of iterative queries that it will |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
17 |
+ send (default 50) before terminating a recursive |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
18 |
+ query (CVE-2014-8500). |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
19 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
20 |
+ The recursion depth limit is configured via the |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
21 |
+ "max-recursion-depth" option, and the query limit |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
22 |
+ via the "max-recursion-queries" option. [RT #37580] |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
23 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
24 |
--- 9.6-ESV-R11 released --- |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
25 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
26 |
--- 9.6-ESV-R11rc2 released --- |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
27 |
diff --git a/bin/named/config.c b/bin/named/config.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
28 |
index d85afa7..823d101 100644 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
29 |
--- a/bin/named/config.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
30 |
+++ b/bin/named/config.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
31 |
@@ -15,8 +15,6 @@ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
32 |
* PERFORMANCE OF THIS SOFTWARE. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
33 |
*/ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
34 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
35 |
-/* $Id$ */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
36 |
- |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
37 |
/*! \file */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
38 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
39 |
#include <config.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
40 |
@@ -145,6 +143,8 @@ options {\n\ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
41 |
dnssec-accept-expired no;\n\ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
42 |
clients-per-query 10;\n\ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
43 |
max-clients-per-query 100;\n\ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
44 |
+ max-recursion-depth 7;\n\ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
45 |
+ max-recursion-queries 50;\n\ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
46 |
zero-no-soa-ttl-cache no;\n\ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
47 |
nsec3-test-zone no;\n\ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
48 |
" |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
49 |
diff --git a/bin/named/include/named/query.h b/bin/named/include/named/query.h |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
50 |
index 20aff40..771345e 100644 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
51 |
--- a/bin/named/include/named/query.h |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
52 |
+++ b/bin/named/include/named/query.h |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
53 |
@@ -1,5 +1,5 @@ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
54 |
/* |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
55 |
- * Copyright (C) 2004, 2005, 2007, 2010, 2012 Internet Systems Consortium, Inc. ("ISC") |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
56 |
+ * Copyright (C) 2004, 2005, 2007, 2010, 2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
57 |
* Copyright (C) 1999-2002 Internet Software Consortium. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
58 |
* |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
59 |
* Permission to use, copy, modify, and/or distribute this software for any |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
60 |
@@ -15,8 +15,6 @@ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
61 |
* PERFORMANCE OF THIS SOFTWARE. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
62 |
*/ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
63 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
64 |
-/* $Id$ */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
65 |
- |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
66 |
#ifndef NAMED_QUERY_H |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
67 |
#define NAMED_QUERY_H 1 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
68 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
69 |
diff --git a/bin/named/query.c b/bin/named/query.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
70 |
index 10a7d9a..48e4822 100644 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
71 |
--- a/bin/named/query.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
72 |
+++ b/bin/named/query.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
73 |
@@ -3343,13 +3343,12 @@ query_recurse(ns_client_t *client, dns_rdatatype_t qtype, dns_name_t *qdomain, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
74 |
peeraddr = &client->peeraddr; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
75 |
else |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
76 |
peeraddr = NULL; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
77 |
- result = dns_resolver_createfetch2(client->view->resolver, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
78 |
+ result = dns_resolver_createfetch3(client->view->resolver, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
79 |
client->query.qname, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
80 |
qtype, qdomain, nameservers, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
81 |
NULL, peeraddr, client->message->id, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
82 |
- client->query.fetchoptions, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
83 |
- client->task, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
84 |
- query_resume, client, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
85 |
+ client->query.fetchoptions, 0, NULL, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
86 |
+ client->task, query_resume, client, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
87 |
rdataset, sigrdataset, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
88 |
&client->query.fetch); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
89 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
90 |
diff --git a/bin/named/server.c b/bin/named/server.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
91 |
index af53b48..4d48074 100644 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
92 |
--- a/bin/named/server.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
93 |
+++ b/bin/named/server.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
94 |
@@ -15,8 +15,6 @@ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
95 |
* PERFORMANCE OF THIS SOFTWARE. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
96 |
*/ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
97 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
98 |
-/* $Id$ */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
99 |
- |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
100 |
/*! \file */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
101 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
102 |
#include <config.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
103 |
@@ -2048,6 +2046,16 @@ configure_view(dns_view_t *view, const cfg_obj_t *config, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
104 |
max_clients_per_query); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
105 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
106 |
obj = NULL; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
107 |
+ result = ns_config_get(maps, "max-recursion-depth", &obj); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
108 |
+ INSIST(result == ISC_R_SUCCESS); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
109 |
+ dns_resolver_setmaxdepth(view->resolver, cfg_obj_asuint32(obj)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
110 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
111 |
+ obj = NULL; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
112 |
+ result = ns_config_get(maps, "max-recursion-queries", &obj); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
113 |
+ INSIST(result == ISC_R_SUCCESS); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
114 |
+ dns_resolver_setmaxqueries(view->resolver, cfg_obj_asuint32(obj)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
115 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
116 |
+ obj = NULL; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
117 |
result = ns_config_get(maps, "dnssec-enable", &obj); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
118 |
INSIST(result == ISC_R_SUCCESS); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
119 |
view->enablednssec = cfg_obj_asboolean(obj); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
120 |
diff --git a/doc/arm/Bv9ARM-book.xml b/doc/arm/Bv9ARM-book.xml |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
121 |
index f894aab..b823dc4 100644 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
122 |
--- a/doc/arm/Bv9ARM-book.xml |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
123 |
+++ b/doc/arm/Bv9ARM-book.xml |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
124 |
@@ -4652,6 +4652,8 @@ category notify { null; }; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
125 |
<optional> max-acache-size <replaceable>size_spec</replaceable> ; </optional> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
126 |
<optional> clients-per-query <replaceable>number</replaceable> ; </optional> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
127 |
<optional> max-clients-per-query <replaceable>number</replaceable> ; </optional> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
128 |
+ <optional> max-recursion-depth <replaceable>number</replaceable> ; </optional> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
129 |
+ <optional> max-recursion-queries <replaceable>number</replaceable> ; </optional> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
130 |
<optional> masterfile-format (<constant>text</constant>|<constant>raw</constant>) ; </optional> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
131 |
<optional> empty-server <replaceable>name</replaceable> ; </optional> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
132 |
<optional> empty-contact <replaceable>name</replaceable> ; </optional> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
133 |
@@ -4729,6 +4731,35 @@ category notify { null; }; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
134 |
</listitem> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
135 |
</varlistentry> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
136 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
137 |
+ <varlistentry id="max-recursion-depth"> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
138 |
+ <term><command>max-recursion-depth</command></term> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
139 |
+ <listitem> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
140 |
+ <para> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
141 |
+ Sets the maximum number of levels of recursion |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
142 |
+ that are permitted at any one time while servicing |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
143 |
+ a recursive query. Resolving a name may require |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
144 |
+ looking up a name server address, which in turn |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
145 |
+ requires resolving another name, etc; if the number |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
146 |
+ of indirections exceeds this value, the recursive |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
147 |
+ query is terminated and returns SERVFAIL. The |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
148 |
+ default is 7. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
149 |
+ </para> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
150 |
+ </listitem> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
151 |
+ </varlistentry> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
152 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
153 |
+ <varlistentry id="max-recursion-queries"> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
154 |
+ <term><command>max-recursion-queries</command></term> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
155 |
+ <listitem> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
156 |
+ <para> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
157 |
+ Sets the maximum number of iterative queries that |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
158 |
+ may be sent while servicing a recursive query. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
159 |
+ If more queries are sent, the recursive query |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
160 |
+ is terminated and returns SERVFAIL. The default |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
161 |
+ is 50. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
162 |
+ </para> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
163 |
+ </listitem> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
164 |
+ </varlistentry> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
165 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
166 |
<varlistentry> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
167 |
<term><command>tkey-gssapi-credential</command></term> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
168 |
<listitem> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
169 |
diff --git a/lib/dns/adb.c b/lib/dns/adb.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
170 |
index 2d7b904..422e59c 100644 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
171 |
--- a/lib/dns/adb.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
172 |
+++ b/lib/dns/adb.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
173 |
@@ -200,6 +200,7 @@ struct dns_adbfetch { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
174 |
unsigned int magic; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
175 |
dns_fetch_t *fetch; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
176 |
dns_rdataset_t rdataset; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
177 |
+ unsigned int depth; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
178 |
}; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
179 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
180 |
/*% |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
181 |
@@ -298,8 +299,7 @@ static inline isc_boolean_t dec_entry_refcnt(dns_adb_t *, isc_boolean_t, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
182 |
static inline void violate_locking_hierarchy(isc_mutex_t *, isc_mutex_t *); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
183 |
static isc_boolean_t clean_namehooks(dns_adb_t *, dns_adbnamehooklist_t *); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
184 |
static void clean_target(dns_adb_t *, dns_name_t *); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
185 |
-static void clean_finds_at_name(dns_adbname_t *, isc_eventtype_t, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
186 |
- unsigned int); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
187 |
+static void clean_finds_at_name(dns_adbname_t *, isc_eventtype_t, unsigned int); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
188 |
static isc_boolean_t check_expire_namehooks(dns_adbname_t *, isc_stdtime_t); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
189 |
static isc_boolean_t check_expire_entry(dns_adb_t *, dns_adbentry_t **, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
190 |
isc_stdtime_t); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
191 |
@@ -307,6 +307,7 @@ static void cancel_fetches_at_name(dns_adbname_t *); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
192 |
static isc_result_t dbfind_name(dns_adbname_t *, isc_stdtime_t, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
193 |
dns_rdatatype_t); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
194 |
static isc_result_t fetch_name(dns_adbname_t *, isc_boolean_t, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
195 |
+ unsigned int, isc_counter_t *qc, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
196 |
dns_rdatatype_t); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
197 |
static inline void check_exit(dns_adb_t *); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
198 |
static void destroy(dns_adb_t *); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
199 |
@@ -2282,6 +2283,19 @@ dns_adb_createfind(dns_adb_t *adb, isc_task_t *task, isc_taskaction_t action, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
200 |
isc_stdtime_t now, dns_name_t *target, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
201 |
in_port_t port, dns_adbfind_t **findp) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
202 |
{ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
203 |
+ return (dns_adb_createfind2(adb, task, action, arg, name, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
204 |
+ qname, qtype, options, now, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
205 |
+ target, port, 0, NULL, findp)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
206 |
+} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
207 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
208 |
+isc_result_t |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
209 |
+dns_adb_createfind2(dns_adb_t *adb, isc_task_t *task, isc_taskaction_t action, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
210 |
+ void *arg, dns_name_t *name, dns_name_t *qname, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
211 |
+ dns_rdatatype_t qtype, unsigned int options, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
212 |
+ isc_stdtime_t now, dns_name_t *target, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
213 |
+ in_port_t port, unsigned int depth, isc_counter_t *qc, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
214 |
+ dns_adbfind_t **findp) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
215 |
+{ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
216 |
dns_adbfind_t *find; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
217 |
dns_adbname_t *adbname; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
218 |
int bucket; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
219 |
@@ -2512,7 +2526,7 @@ dns_adb_createfind(dns_adb_t *adb, isc_task_t *task, isc_taskaction_t action, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
220 |
* Start V4. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
221 |
*/ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
222 |
if (WANT_INET(wanted_fetches) && |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
223 |
- fetch_name(adbname, start_at_zone, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
224 |
+ fetch_name(adbname, start_at_zone, depth, qc, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
225 |
dns_rdatatype_a) == ISC_R_SUCCESS) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
226 |
DP(DEF_LEVEL, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
227 |
"dns_adb_createfind: started A fetch for name %p", |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
228 |
@@ -2523,7 +2537,7 @@ dns_adb_createfind(dns_adb_t *adb, isc_task_t *task, isc_taskaction_t action, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
229 |
* Start V6. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
230 |
*/ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
231 |
if (WANT_INET6(wanted_fetches) && |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
232 |
- fetch_name(adbname, start_at_zone, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
233 |
+ fetch_name(adbname, start_at_zone, depth, qc, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
234 |
dns_rdatatype_aaaa) == ISC_R_SUCCESS) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
235 |
DP(DEF_LEVEL, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
236 |
"dns_adb_createfind: " |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
237 |
@@ -3256,6 +3270,12 @@ fetch_callback(isc_task_t *task, isc_event_t *ev) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
238 |
DP(DEF_LEVEL, "adb: fetch of '%s' %s failed: %s", |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
239 |
buf, address_type == DNS_ADBFIND_INET ? "A" : "AAAA", |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
240 |
dns_result_totext(dev->result)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
241 |
+ /* |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
242 |
+ * Don't record a failure unless this is the initial |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
243 |
+ * fetch of a chain. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
244 |
+ */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
245 |
+ if (fetch->depth > 1) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
246 |
+ goto out; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
247 |
/* XXXMLG Don't pound on bad servers. */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
248 |
if (address_type == DNS_ADBFIND_INET) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
249 |
name->expire_v4 = ISC_MIN(name->expire_v4, now + 300); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
250 |
@@ -3293,9 +3313,8 @@ fetch_callback(isc_task_t *task, isc_event_t *ev) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
251 |
} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
252 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
253 |
static isc_result_t |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
254 |
-fetch_name(dns_adbname_t *adbname, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
255 |
- isc_boolean_t start_at_zone, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
256 |
- dns_rdatatype_t type) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
257 |
+fetch_name(dns_adbname_t *adbname, isc_boolean_t start_at_zone, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
258 |
+ unsigned int depth, isc_counter_t *qc, dns_rdatatype_t type) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
259 |
{ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
260 |
isc_result_t result; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
261 |
dns_adbfetch_t *fetch = NULL; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
262 |
@@ -3340,12 +3359,14 @@ fetch_name(dns_adbname_t *adbname, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
263 |
result = ISC_R_NOMEMORY; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
264 |
goto cleanup; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
265 |
} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
266 |
+ fetch->depth = depth; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
267 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
268 |
- result = dns_resolver_createfetch(adb->view->resolver, &adbname->name, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
269 |
- type, name, nameservers, NULL, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
270 |
- options, adb->task, fetch_callback, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
271 |
- adbname, &fetch->rdataset, NULL, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
272 |
- &fetch->fetch); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
273 |
+ result = dns_resolver_createfetch3(adb->view->resolver, &adbname->name, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
274 |
+ type, name, nameservers, NULL, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
275 |
+ NULL, 0, options, depth, qc, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
276 |
+ adb->task, fetch_callback, adbname, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
277 |
+ &fetch->rdataset, NULL, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
278 |
+ &fetch->fetch); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
279 |
if (result != ISC_R_SUCCESS) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
280 |
goto cleanup; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
281 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
282 |
diff --git a/lib/dns/include/dns/adb.h b/lib/dns/include/dns/adb.h |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
283 |
index d4d1b05..556fcc2 100644 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
284 |
--- a/lib/dns/include/dns/adb.h |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
285 |
+++ b/lib/dns/include/dns/adb.h |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
286 |
@@ -334,6 +334,13 @@ dns_adb_createfind(dns_adb_t *adb, isc_task_t *task, isc_taskaction_t action, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
287 |
dns_rdatatype_t qtype, unsigned int options, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
288 |
isc_stdtime_t now, dns_name_t *target, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
289 |
in_port_t port, dns_adbfind_t **find); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
290 |
+isc_result_t |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
291 |
+dns_adb_createfind2(dns_adb_t *adb, isc_task_t *task, isc_taskaction_t action, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
292 |
+ void *arg, dns_name_t *name, dns_name_t *qname, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
293 |
+ dns_rdatatype_t qtype, unsigned int options, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
294 |
+ isc_stdtime_t now, dns_name_t *target, in_port_t port, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
295 |
+ unsigned int depth, isc_counter_t *qc, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
296 |
+ dns_adbfind_t **find); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
297 |
/*%< |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
298 |
* Main interface for clients. The adb will look up the name given in |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
299 |
* "name" and will build up a list of found addresses, and perhaps start |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
300 |
diff --git a/lib/dns/include/dns/resolver.h b/lib/dns/include/dns/resolver.h |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
301 |
index d293daa..10c3a3a 100644 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
302 |
--- a/lib/dns/include/dns/resolver.h |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
303 |
+++ b/lib/dns/include/dns/resolver.h |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
304 |
@@ -270,6 +270,18 @@ dns_resolver_createfetch2(dns_resolver_t *res, dns_name_t *name, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
305 |
dns_rdataset_t *rdataset, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
306 |
dns_rdataset_t *sigrdataset, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
307 |
dns_fetch_t **fetchp); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
308 |
+isc_result_t |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
309 |
+dns_resolver_createfetch3(dns_resolver_t *res, dns_name_t *name, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
310 |
+ dns_rdatatype_t type, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
311 |
+ dns_name_t *domain, dns_rdataset_t *nameservers, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
312 |
+ dns_forwarders_t *forwarders, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
313 |
+ isc_sockaddr_t *client, isc_uint16_t id, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
314 |
+ unsigned int options, unsigned int depth, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
315 |
+ isc_counter_t *qc, isc_task_t *task, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
316 |
+ isc_taskaction_t action, void *arg, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
317 |
+ dns_rdataset_t *rdataset, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
318 |
+ dns_rdataset_t *sigrdataset, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
319 |
+ dns_fetch_t **fetchp); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
320 |
/*%< |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
321 |
* Recurse to answer a question. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
322 |
* |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
323 |
@@ -550,6 +562,30 @@ dns_resolver_printbadcache(dns_resolver_t *resolver, FILE *fp); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
324 |
* \li resolver to be valid. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
325 |
*/ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
326 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
327 |
+void |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
328 |
+dns_resolver_setmaxdepth(dns_resolver_t *resolver, unsigned int maxdepth); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
329 |
+unsigned int |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
330 |
+dns_resolver_getmaxdepth(dns_resolver_t *resolver); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
331 |
+/*% |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
332 |
+ * Get and set how many NS indirections will be followed when looking for |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
333 |
+ * nameserver addresses. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
334 |
+ * |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
335 |
+ * Requires: |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
336 |
+ * \li resolver to be valid. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
337 |
+ */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
338 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
339 |
+void |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
340 |
+dns_resolver_setmaxqueries(dns_resolver_t *resolver, unsigned int queries); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
341 |
+unsigned int |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
342 |
+dns_resolver_getmaxqueries(dns_resolver_t *resolver); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
343 |
+/*% |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
344 |
+ * Get and set how many iterative queries will be allowed before |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
345 |
+ * terminating a recursive query. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
346 |
+ * |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
347 |
+ * Requires: |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
348 |
+ * \li resolver to be valid. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
349 |
+ */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
350 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
351 |
ISC_LANG_ENDDECLS |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
352 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
353 |
#endif /* DNS_RESOLVER_H */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
354 |
diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
355 |
index 7dcea6d..bd3d9fd 100644 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
356 |
--- a/lib/dns/resolver.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
357 |
+++ b/lib/dns/resolver.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
358 |
@@ -21,6 +21,7 @@ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
359 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
360 |
#include <config.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
361 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
362 |
+#include <isc/counter.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
363 |
#include <isc/log.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
364 |
#include <isc/platform.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
365 |
#include <isc/print.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
366 |
@@ -109,6 +110,16 @@ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
367 |
#define QTRACE(m) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
368 |
#endif |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
369 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
370 |
+/* The default maximum number of recursions to follow before giving up. */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
371 |
+#ifndef DEFAULT_RECURSION_DEPTH |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
372 |
+#define DEFAULT_RECURSION_DEPTH 7 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
373 |
+#endif |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
374 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
375 |
+/* The default maximum number of iterative queries to allow before giving up. */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
376 |
+#ifndef DEFAULT_MAX_QUERIES |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
377 |
+#define DEFAULT_MAX_QUERIES 50 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
378 |
+#endif |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
379 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
380 |
/*% |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
381 |
* Maximum EDNS0 input packet size. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
382 |
*/ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
383 |
@@ -211,12 +222,13 @@ struct fetchctx { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
384 |
isc_sockaddrlist_t edns; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
385 |
isc_sockaddrlist_t edns512; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
386 |
isc_sockaddrlist_t bad_edns; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
387 |
- dns_validator_t *validator; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
388 |
+ dns_validator_t * validator; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
389 |
ISC_LIST(dns_validator_t) validators; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
390 |
dns_db_t * cache; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
391 |
dns_adb_t * adb; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
392 |
isc_boolean_t ns_ttl_ok; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
393 |
isc_uint32_t ns_ttl; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
394 |
+ isc_counter_t * qc; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
395 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
396 |
/*% |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
397 |
* The number of events we're waiting for. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
398 |
@@ -283,6 +295,7 @@ struct fetchctx { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
399 |
unsigned int valfail; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
400 |
isc_boolean_t timeout; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
401 |
dns_adbaddrinfo_t *addrinfo; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
402 |
+ unsigned int depth; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
403 |
}; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
404 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
405 |
#define FCTX_MAGIC ISC_MAGIC('F', '!', '!', '!') |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
406 |
@@ -394,6 +407,8 @@ struct dns_resolver { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
407 |
unsigned int spillatmin; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
408 |
isc_timer_t * spillattimer; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
409 |
isc_boolean_t zero_no_soa_ttl; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
410 |
+ unsigned int maxdepth; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
411 |
+ unsigned int maxqueries; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
412 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
413 |
/* Locked by lock. */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
414 |
unsigned int references; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
415 |
@@ -1495,6 +1510,7 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
416 |
if (result != ISC_R_SUCCESS) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
417 |
goto cleanup_dispatch; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
418 |
} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
419 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
420 |
fctx->querysent++; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
421 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
422 |
ISC_LIST_APPEND(fctx->queries, query, link); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
423 |
@@ -2146,9 +2162,9 @@ fctx_finddone(isc_task_t *task, isc_event_t *event) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
424 |
*/ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
425 |
INSIST(!SHUTTINGDOWN(fctx)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
426 |
fctx->attributes &= ~FCTX_ATTR_ADDRWAIT; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
427 |
- if (event->ev_type == DNS_EVENT_ADBMOREADDRESSES) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
428 |
+ if (event->ev_type == DNS_EVENT_ADBMOREADDRESSES) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
429 |
want_try = ISC_TRUE; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
430 |
- else { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
431 |
+ } else { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
432 |
fctx->findfail++; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
433 |
if (fctx->pending == 0) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
434 |
/* |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
435 |
@@ -2177,7 +2193,7 @@ fctx_finddone(isc_task_t *task, isc_event_t *event) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
436 |
else if (want_done) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
437 |
fctx_done(fctx, ISC_R_FAILURE, __LINE__); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
438 |
else if (destroy) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
439 |
- fctx_destroy(fctx); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
440 |
+ fctx_destroy(fctx); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
441 |
if (bucket_empty) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
442 |
empty_bucket(res); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
443 |
} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
444 |
@@ -2499,12 +2515,13 @@ findname(fetchctx_t *fctx, dns_name_t *name, in_port_t port, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
445 |
* See what we know about this address. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
446 |
*/ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
447 |
find = NULL; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
448 |
- result = dns_adb_createfind(fctx->adb, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
449 |
- res->buckets[fctx->bucketnum].task, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
450 |
- fctx_finddone, fctx, name, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
451 |
- &fctx->name, fctx->type, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
452 |
- options, now, NULL, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
453 |
- res->view->dstport, &find); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
454 |
+ result = dns_adb_createfind2(fctx->adb, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
455 |
+ res->buckets[fctx->bucketnum].task, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
456 |
+ fctx_finddone, fctx, name, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
457 |
+ &fctx->name, fctx->type, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
458 |
+ options, now, NULL, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
459 |
+ res->view->dstport, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
460 |
+ fctx->depth + 1, fctx->qc, &find); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
461 |
if (result != ISC_R_SUCCESS) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
462 |
if (result == DNS_R_ALIAS) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
463 |
/* |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
464 |
@@ -2612,6 +2629,14 @@ fctx_getaddresses(fetchctx_t *fctx, isc_boolean_t badcache) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
465 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
466 |
res = fctx->res; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
467 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
468 |
+ if (fctx->depth > res->maxdepth) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
469 |
+ isc_log_write(dns_lctx, DNS_LOGCATEGORY_RESOLVER, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
470 |
+ DNS_LOGMODULE_RESOLVER, ISC_LOG_DEBUG(3), |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
471 |
+ "too much NS indirection resolving '%s'", |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
472 |
+ fctx->info); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
473 |
+ return (DNS_R_SERVFAIL); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
474 |
+ } |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
475 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
476 |
/* |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
477 |
* Forwarders. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
478 |
*/ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
479 |
@@ -3087,6 +3112,16 @@ fctx_try(fetchctx_t *fctx, isc_boolean_t retrying, isc_boolean_t badcache) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
480 |
} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
481 |
} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
482 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
483 |
+ result = isc_counter_increment(fctx->qc); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
484 |
+ if (result != ISC_R_SUCCESS) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
485 |
+ isc_log_write(dns_lctx, DNS_LOGCATEGORY_RESOLVER, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
486 |
+ DNS_LOGMODULE_RESOLVER, ISC_LOG_DEBUG(3), |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
487 |
+ "exceeded max queries resolving '%s'", |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
488 |
+ fctx->info); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
489 |
+ fctx_done(fctx, DNS_R_SERVFAIL, __LINE__); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
490 |
+ return; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
491 |
+ } |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
492 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
493 |
result = fctx_query(fctx, addrinfo, fctx->options); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
494 |
if (result != ISC_R_SUCCESS) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
495 |
fctx_done(fctx, result, __LINE__); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
496 |
@@ -3185,6 +3220,7 @@ fctx_destroy(fetchctx_t *fctx) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
497 |
isc_mem_put(fctx->mctx, sa, sizeof(*sa)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
498 |
} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
499 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
500 |
+ isc_counter_detach(&fctx->qc); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
501 |
isc_timer_detach(&fctx->timer); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
502 |
dns_message_destroy(&fctx->rmessage); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
503 |
dns_message_destroy(&fctx->qmessage); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
504 |
@@ -3512,7 +3548,8 @@ log_ns_ttl(fetchctx_t *fctx, const char *where) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
505 |
static isc_result_t |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
506 |
fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
507 |
dns_name_t *domain, dns_rdataset_t *nameservers, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
508 |
- unsigned int options, unsigned int bucketnum, fetchctx_t **fctxp) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
509 |
+ unsigned int options, unsigned int bucketnum, unsigned int depth, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
510 |
+ isc_counter_t *qc, fetchctx_t **fctxp) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
511 |
{ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
512 |
fetchctx_t *fctx; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
513 |
isc_result_t result; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
514 |
@@ -3534,6 +3571,21 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
515 |
fctx = isc_mem_get(mctx, sizeof(*fctx)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
516 |
if (fctx == NULL) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
517 |
return (ISC_R_NOMEMORY); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
518 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
519 |
+ fctx->qc = NULL; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
520 |
+ if (qc != NULL) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
521 |
+ isc_counter_attach(qc, &fctx->qc); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
522 |
+ } else { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
523 |
+ result = isc_counter_create(res->mctx, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
524 |
+ res->maxqueries, &fctx->qc); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
525 |
+ if (result != ISC_R_SUCCESS) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
526 |
+ goto cleanup_fetch; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
527 |
+ } |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
528 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
529 |
+ /* |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
530 |
+ * Make fctx->info point to a copy of a formatted string |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
531 |
+ * "name/type". |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
532 |
+ */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
533 |
dns_name_format(name, buf, sizeof(buf)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
534 |
dns_rdatatype_format(type, typebuf, sizeof(typebuf)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
535 |
strcat(buf, "/"); /* checked */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
536 |
@@ -3541,7 +3593,7 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
537 |
fctx->info = isc_mem_strdup(mctx, buf); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
538 |
if (fctx->info == NULL) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
539 |
result = ISC_R_NOMEMORY; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
540 |
- goto cleanup_fetch; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
541 |
+ goto cleanup_counter; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
542 |
} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
543 |
FCTXTRACE("create"); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
544 |
dns_name_init(&fctx->name, NULL); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
545 |
@@ -3564,6 +3616,7 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
546 |
fctx->state = fetchstate_init; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
547 |
fctx->want_shutdown = ISC_FALSE; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
548 |
fctx->cloned = ISC_FALSE; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
549 |
+ fctx->depth = depth; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
550 |
ISC_LIST_INIT(fctx->queries); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
551 |
ISC_LIST_INIT(fctx->finds); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
552 |
ISC_LIST_INIT(fctx->altfinds); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
553 |
@@ -3768,6 +3821,9 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
554 |
cleanup_info: |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
555 |
isc_mem_free(mctx, fctx->info); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
556 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
557 |
+ cleanup_counter: |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
558 |
+ isc_counter_detach(&fctx->qc); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
559 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
560 |
cleanup_fetch: |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
561 |
isc_mem_put(mctx, fctx, sizeof(*fctx)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
562 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
563 |
@@ -7339,6 +7395,8 @@ dns_resolver_create(dns_view_t *view, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
564 |
res->zero_no_soa_ttl = ISC_FALSE; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
565 |
res->ndisps = 0; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
566 |
res->nextdisp = 0; /* meaningless at this point, but init it */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
567 |
+ res->maxdepth = DEFAULT_RECURSION_DEPTH; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
568 |
+ res->maxqueries = DEFAULT_MAX_QUERIES; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
569 |
res->nbuckets = ntasks; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
570 |
res->activebuckets = ntasks; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
571 |
res->buckets = isc_mem_get(view->mctx, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
572 |
@@ -7778,9 +7836,9 @@ dns_resolver_createfetch(dns_resolver_t *res, dns_name_t *name, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
573 |
dns_rdataset_t *sigrdataset, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
574 |
dns_fetch_t **fetchp) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
575 |
{ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
576 |
- return (dns_resolver_createfetch2(res, name, type, domain, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
577 |
+ return (dns_resolver_createfetch3(res, name, type, domain, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
578 |
nameservers, forwarders, NULL, 0, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
579 |
- options, task, action, arg, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
580 |
+ options, 0, NULL, task, action, arg, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
581 |
rdataset, sigrdataset, fetchp)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
582 |
} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
583 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
584 |
@@ -7796,6 +7854,25 @@ dns_resolver_createfetch2(dns_resolver_t *res, dns_name_t *name, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
585 |
dns_rdataset_t *sigrdataset, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
586 |
dns_fetch_t **fetchp) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
587 |
{ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
588 |
+ return (dns_resolver_createfetch3(res, name, type, domain, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
589 |
+ nameservers, forwarders, client, id, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
590 |
+ options, 0, NULL, task, action, arg, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
591 |
+ rdataset, sigrdataset, fetchp)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
592 |
+} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
593 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
594 |
+isc_result_t |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
595 |
+dns_resolver_createfetch3(dns_resolver_t *res, dns_name_t *name, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
596 |
+ dns_rdatatype_t type, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
597 |
+ dns_name_t *domain, dns_rdataset_t *nameservers, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
598 |
+ dns_forwarders_t *forwarders, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
599 |
+ isc_sockaddr_t *client, dns_messageid_t id, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
600 |
+ unsigned int options, unsigned int depth, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
601 |
+ isc_counter_t *qc, isc_task_t *task, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
602 |
+ isc_taskaction_t action, void *arg, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
603 |
+ dns_rdataset_t *rdataset, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
604 |
+ dns_rdataset_t *sigrdataset, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
605 |
+ dns_fetch_t **fetchp) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
606 |
+{ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
607 |
dns_fetch_t *fetch; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
608 |
fetchctx_t *fctx = NULL; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
609 |
isc_result_t result = ISC_R_SUCCESS; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
610 |
@@ -7882,11 +7959,12 @@ dns_resolver_createfetch2(dns_resolver_t *res, dns_name_t *name, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
611 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
612 |
if (fctx == NULL) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
613 |
result = fctx_create(res, name, type, domain, nameservers, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
614 |
- options, bucketnum, &fctx); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
615 |
+ options, bucketnum, depth, qc, &fctx); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
616 |
if (result != ISC_R_SUCCESS) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
617 |
goto unlock; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
618 |
new_fctx = ISC_TRUE; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
619 |
- } |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
620 |
+ } else if (fctx->depth > depth) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
621 |
+ fctx->depth = depth; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
622 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
623 |
result = fctx_join(fctx, task, client, id, action, arg, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
624 |
rdataset, sigrdataset, fetch); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
625 |
@@ -8637,3 +8715,27 @@ dns_resolver_getoptions(dns_resolver_t *resolver) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
626 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
627 |
return (resolver->options); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
628 |
} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
629 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
630 |
+void |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
631 |
+dns_resolver_setmaxdepth(dns_resolver_t *resolver, unsigned int maxdepth) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
632 |
+ REQUIRE(VALID_RESOLVER(resolver)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
633 |
+ resolver->maxdepth = maxdepth; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
634 |
+} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
635 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
636 |
+unsigned int |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
637 |
+dns_resolver_getmaxdepth(dns_resolver_t *resolver) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
638 |
+ REQUIRE(VALID_RESOLVER(resolver)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
639 |
+ return (resolver->maxdepth); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
640 |
+} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
641 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
642 |
+void |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
643 |
+dns_resolver_setmaxqueries(dns_resolver_t *resolver, unsigned int queries) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
644 |
+ REQUIRE(VALID_RESOLVER(resolver)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
645 |
+ resolver->maxqueries = queries; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
646 |
+} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
647 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
648 |
+unsigned int |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
649 |
+dns_resolver_getmaxqueries(dns_resolver_t *resolver) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
650 |
+ REQUIRE(VALID_RESOLVER(resolver)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
651 |
+ return (resolver->maxqueries); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
652 |
+} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
653 |
diff --git a/lib/isc/Makefile.in b/lib/isc/Makefile.in |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
654 |
index 0b4020b..afc19ee 100644 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
655 |
--- a/lib/isc/Makefile.in |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
656 |
+++ b/lib/isc/Makefile.in |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
657 |
@@ -13,8 +13,6 @@ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
658 |
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
659 |
# PERFORMANCE OF THIS SOFTWARE. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
660 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
661 |
-# $Id$ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
662 |
- |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
663 |
srcdir = @srcdir@ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
664 |
VPATH = @srcdir@ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
665 |
top_srcdir = @top_srcdir@ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
666 |
@@ -53,7 +51,7 @@ WIN32OBJS = win32/condition.@O@ win32/dir.@O@ win32/file.@O@ \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
667 |
# Alphabetically |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
668 |
OBJS = @ISC_EXTRA_OBJS@ \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
669 |
assertions.@O@ base32.@O@ base64.@O@ bitstring.@O@ buffer.@O@ \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
670 |
- bufferlist.@O@ commandline.@O@ error.@O@ event.@O@ \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
671 |
+ bufferlist.@O@ commandline.@O@ counter.@O@ error.@O@ event.@O@ \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
672 |
hash.@O@ heap.@O@ hex.@O@ hmacmd5.@O@ hmacsha.@O@ \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
673 |
httpd.@O@ inet_aton.@O@ iterated_hash.@O@ \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
674 |
lex.@O@ lfsr.@O@ lib.@O@ log.@O@ \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
675 |
@@ -68,7 +66,7 @@ OBJS = @ISC_EXTRA_OBJS@ \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
676 |
# Alphabetically |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
677 |
SRCS = @ISC_EXTRA_SRCS@ \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
678 |
assertions.c base32.c base64.c bitstring.c buffer.c \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
679 |
- bufferlist.c commandline.c error.c event.c \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
680 |
+ bufferlist.c commandline.c counter.c error.c event.c \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
681 |
heap.c hex.c hmacmd5.c hmacsha.c \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
682 |
httpd.c inet_aton.c iterated_hash.c \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
683 |
lex.c lfsr.c lib.c log.c \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
684 |
diff --git a/lib/isc/include/isc/Makefile.in b/lib/isc/include/isc/Makefile.in |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
685 |
index 9adca3e..1cfbbd1 100644 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
686 |
--- a/lib/isc/include/isc/Makefile.in |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
687 |
+++ b/lib/isc/include/isc/Makefile.in |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
688 |
@@ -13,8 +13,6 @@ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
689 |
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
690 |
# PERFORMANCE OF THIS SOFTWARE. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
691 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
692 |
-# $Id$ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
693 |
- |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
694 |
srcdir = @srcdir@ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
695 |
VPATH = @srcdir@ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
696 |
top_srcdir = @top_srcdir@ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
697 |
@@ -27,7 +25,7 @@ top_srcdir = @top_srcdir@ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
698 |
# install target below. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
699 |
# |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
700 |
HEADERS = app.h assertions.h base64.h bitstring.h boolean.h buffer.h \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
701 |
- bufferlist.h commandline.h entropy.h error.h event.h \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
702 |
+ bufferlist.h commandline.h counter.h entropy.h error.h event.h \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
703 |
eventclass.h file.h formatcheck.h fsaccess.h \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
704 |
hash.h heap.h hex.h hmacmd5.h hmacsha.h \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
705 |
httpd.h \ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
706 |
diff --git a/lib/isc/include/isc/types.h b/lib/isc/include/isc/types.h |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
707 |
index 8e8b08f..a646b8b 100644 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
708 |
--- a/lib/isc/include/isc/types.h |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
709 |
+++ b/lib/isc/include/isc/types.h |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
710 |
@@ -45,6 +45,7 @@ typedef struct isc_buffer isc_buffer_t; /*%< Buffer */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
711 |
typedef ISC_LIST(isc_buffer_t) isc_bufferlist_t; /*%< Buffer List */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
712 |
typedef struct isc_constregion isc_constregion_t; /*%< Const region */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
713 |
typedef struct isc_consttextregion isc_consttextregion_t; /*%< Const Text Region */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
714 |
+typedef struct isc_counter isc_counter_t; /*%< Counter */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
715 |
typedef struct isc_entropy isc_entropy_t; /*%< Entropy */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
716 |
typedef struct isc_entropysource isc_entropysource_t; /*%< Entropy Source */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
717 |
typedef struct isc_event isc_event_t; /*%< Event */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
718 |
diff --git a/lib/isccfg/namedconf.c b/lib/isccfg/namedconf.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
719 |
index fac2633..3023dcc 100644 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
720 |
--- a/lib/isccfg/namedconf.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
721 |
+++ b/lib/isccfg/namedconf.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
722 |
@@ -15,8 +15,6 @@ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
723 |
* PERFORMANCE OF THIS SOFTWARE. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
724 |
*/ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
725 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
726 |
-/* $Id$ */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
727 |
- |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
728 |
/*! \file */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
729 |
|
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
730 |
#include <config.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
731 |
@@ -830,6 +828,8 @@ view_clauses[] = { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
732 |
{ "max-cache-ttl", &cfg_type_uint32, 0 }, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
733 |
{ "max-clients-per-query", &cfg_type_uint32, 0 }, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
734 |
{ "max-ncache-ttl", &cfg_type_uint32, 0 }, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
735 |
+ { "max-recursion-depth", &cfg_type_uint32, 0 }, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
736 |
+ { "max-recursion-queries", &cfg_type_uint32, 0 }, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
737 |
{ "max-udp-size", &cfg_type_uint32, 0 }, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
738 |
{ "min-roots", &cfg_type_uint32, CFG_CLAUSEFLAG_NOTIMP }, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
739 |
{ "minimal-responses", &cfg_type_boolean, 0 }, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
740 |
diff --git a/version b/version |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
741 |
index 1be3c16..2058444 100644 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
742 |
--- a/version |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
743 |
+++ b/version |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
744 |
@@ -10,4 +10,4 @@ MINORVER=6 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
745 |
PATCHVER= |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
746 |
RELEASETYPE=-ESV |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
747 |
RELEASEVER=-R11 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
748 |
-EXTENSIONS= |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
749 |
+EXTENSIONS=-P1 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
750 |
diff --git a/lib/isc/counter.c b/lib/isc/counter.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
751 |
new file mode 100644 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
752 |
index 0000000..d7d187b |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
753 |
--- /dev/null |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
754 |
+++ b/lib/isc/counter.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
755 |
@@ -0,0 +1,138 @@ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
756 |
+/* |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
757 |
+ * Copyright (C) 2014 Internet Systems Consortium, Inc. ("ISC") |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
758 |
+ * |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
759 |
+ * Permission to use, copy, modify, and/or distribute this software for any |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
760 |
+ * purpose with or without fee is hereby granted, provided that the above |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
761 |
+ * copyright notice and this permission notice appear in all copies. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
762 |
+ * |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
763 |
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
764 |
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
765 |
+ * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
766 |
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
767 |
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
768 |
+ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
769 |
+ * PERFORMANCE OF THIS SOFTWARE. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
770 |
+ */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
771 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
772 |
+/*! \file */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
773 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
774 |
+#include <config.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
775 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
776 |
+#include <stddef.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
777 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
778 |
+#include <isc/counter.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
779 |
+#include <isc/magic.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
780 |
+#include <isc/mem.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
781 |
+#include <isc/util.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
782 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
783 |
+#define COUNTER_MAGIC ISC_MAGIC('C', 'n', 't', 'r') |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
784 |
+#define VALID_COUNTER(r) ISC_MAGIC_VALID(r, COUNTER_MAGIC) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
785 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
786 |
+struct isc_counter { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
787 |
+ unsigned int magic; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
788 |
+ isc_mem_t *mctx; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
789 |
+ isc_mutex_t lock; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
790 |
+ unsigned int references; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
791 |
+ unsigned int limit; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
792 |
+ unsigned int used; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
793 |
+}; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
794 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
795 |
+isc_result_t |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
796 |
+isc_counter_create(isc_mem_t *mctx, int limit, isc_counter_t **counterp) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
797 |
+ isc_result_t result; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
798 |
+ isc_counter_t *counter; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
799 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
800 |
+ REQUIRE(counterp != NULL && *counterp == NULL); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
801 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
802 |
+ counter = isc_mem_get(mctx, sizeof(*counter)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
803 |
+ if (counter == NULL) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
804 |
+ return (ISC_R_NOMEMORY); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
805 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
806 |
+ result = isc_mutex_init(&counter->lock); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
807 |
+ if (result != ISC_R_SUCCESS) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
808 |
+ isc_mem_put(mctx, counter, sizeof(*counter)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
809 |
+ return (result); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
810 |
+ } |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
811 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
812 |
+ counter->mctx = NULL; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
813 |
+ isc_mem_attach(mctx, &counter->mctx); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
814 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
815 |
+ counter->references = 1; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
816 |
+ counter->limit = limit; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
817 |
+ counter->used = 0; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
818 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
819 |
+ counter->magic = COUNTER_MAGIC; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
820 |
+ *counterp = counter; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
821 |
+ return (ISC_R_SUCCESS); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
822 |
+} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
823 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
824 |
+isc_result_t |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
825 |
+isc_counter_increment(isc_counter_t *counter) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
826 |
+ isc_result_t result = ISC_R_SUCCESS; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
827 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
828 |
+ LOCK(&counter->lock); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
829 |
+ counter->used++; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
830 |
+ if (counter->limit != 0 && counter->used >= counter->limit) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
831 |
+ result = ISC_R_QUOTA; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
832 |
+ UNLOCK(&counter->lock); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
833 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
834 |
+ return (result); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
835 |
+} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
836 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
837 |
+unsigned int |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
838 |
+isc_counter_used(isc_counter_t *counter) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
839 |
+ REQUIRE(VALID_COUNTER(counter)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
840 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
841 |
+ return (counter->used); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
842 |
+} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
843 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
844 |
+void |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
845 |
+isc_counter_setlimit(isc_counter_t *counter, int limit) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
846 |
+ REQUIRE(VALID_COUNTER(counter)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
847 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
848 |
+ LOCK(&counter->lock); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
849 |
+ counter->limit = limit; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
850 |
+ UNLOCK(&counter->lock); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
851 |
+} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
852 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
853 |
+void |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
854 |
+isc_counter_attach(isc_counter_t *source, isc_counter_t **targetp) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
855 |
+ REQUIRE(VALID_COUNTER(source)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
856 |
+ REQUIRE(targetp != NULL && *targetp == NULL); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
857 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
858 |
+ LOCK(&source->lock); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
859 |
+ source->references++; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
860 |
+ INSIST(source->references > 0); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
861 |
+ UNLOCK(&source->lock); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
862 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
863 |
+ *targetp = source; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
864 |
+} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
865 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
866 |
+static void |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
867 |
+destroy(isc_counter_t *counter) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
868 |
+ counter->magic = 0; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
869 |
+ isc_mutex_destroy(&counter->lock); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
870 |
+ isc_mem_putanddetach(&counter->mctx, counter, sizeof(*counter)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
871 |
+} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
872 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
873 |
+void |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
874 |
+isc_counter_detach(isc_counter_t **counterp) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
875 |
+ isc_counter_t *counter; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
876 |
+ isc_boolean_t want_destroy = ISC_FALSE; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
877 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
878 |
+ REQUIRE(counterp != NULL && *counterp != NULL); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
879 |
+ counter = *counterp; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
880 |
+ REQUIRE(VALID_COUNTER(counter)); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
881 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
882 |
+ *counterp = NULL; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
883 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
884 |
+ LOCK(&counter->lock); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
885 |
+ INSIST(counter->references > 0); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
886 |
+ counter->references--; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
887 |
+ if (counter->references == 0) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
888 |
+ want_destroy = ISC_TRUE; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
889 |
+ UNLOCK(&counter->lock); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
890 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
891 |
+ if (want_destroy) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
892 |
+ destroy(counter); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
893 |
+} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
894 |
diff --git a/lib/isc/include/isc/counter.h b/lib/isc/include/isc/counter.h |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
895 |
new file mode 100644 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
896 |
index 0000000..e7ebd25 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
897 |
--- /dev/null |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
898 |
+++ b/lib/isc/include/isc/counter.h |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
899 |
@@ -0,0 +1,90 @@ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
900 |
+/* |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
901 |
+ * Copyright (C) 2014 Internet Systems Consortium, Inc. ("ISC") |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
902 |
+ * |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
903 |
+ * Permission to use, copy, modify, and/or distribute this software for any |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
904 |
+ * purpose with or without fee is hereby granted, provided that the above |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
905 |
+ * copyright notice and this permission notice appear in all copies. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
906 |
+ * |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
907 |
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
908 |
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
909 |
+ * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
910 |
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
911 |
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
912 |
+ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
913 |
+ * PERFORMANCE OF THIS SOFTWARE. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
914 |
+ */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
915 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
916 |
+#ifndef ISC_COUNTER_H |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
917 |
+#define ISC_COUNTER_H 1 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
918 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
919 |
+/***** |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
920 |
+ ***** Module Info |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
921 |
+ *****/ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
922 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
923 |
+/*! \file isc/counter.h |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
924 |
+ * |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
925 |
+ * \brief The isc_counter_t object is a simplified version of the |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
926 |
+ * isc_quota_t object; it tracks the consumption of limited |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
927 |
+ * resources, returning an error condition when the quota is |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
928 |
+ * exceeded. However, unlike isc_quota_t, attaching and detaching |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
929 |
+ * from a counter object does not increment or decrement the counter. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
930 |
+ */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
931 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
932 |
+/*** |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
933 |
+ *** Imports. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
934 |
+ ***/ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
935 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
936 |
+#include <isc/lang.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
937 |
+#include <isc/mutex.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
938 |
+#include <isc/types.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
939 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
940 |
+/***** |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
941 |
+ ***** Types. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
942 |
+ *****/ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
943 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
944 |
+ISC_LANG_BEGINDECLS |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
945 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
946 |
+isc_result_t |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
947 |
+isc_counter_create(isc_mem_t *mctx, int limit, isc_counter_t **counterp); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
948 |
+/*%< |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
949 |
+ * Allocate and initialize a counter object. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
950 |
+ */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
951 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
952 |
+isc_result_t |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
953 |
+isc_counter_increment(isc_counter_t *counter); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
954 |
+/*%< |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
955 |
+ * Increment the counter. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
956 |
+ * |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
957 |
+ * If the counter limit is nonzero and has been reached, then |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
958 |
+ * return ISC_R_QUOTA, otherwise ISC_R_SUCCESS. (The counter is |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
959 |
+ * incremented regardless of return value.) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
960 |
+ */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
961 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
962 |
+unsigned int |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
963 |
+isc_counter_used(isc_counter_t *counter); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
964 |
+/*%< |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
965 |
+ * Return the current counter value. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
966 |
+ */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
967 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
968 |
+void |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
969 |
+isc_counter_setlimit(isc_counter_t *counter, int limit); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
970 |
+/*%< |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
971 |
+ * Set the counter limit. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
972 |
+ */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
973 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
974 |
+void |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
975 |
+isc_counter_attach(isc_counter_t *source, isc_counter_t **targetp); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
976 |
+/*%< |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
977 |
+ * Attach to a counter object, increasing its reference counter. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
978 |
+ */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
979 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
980 |
+void |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
981 |
+isc_counter_detach(isc_counter_t **counterp); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
982 |
+/*%< |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
983 |
+ * Detach (and destroy if reference counter has dropped to zero) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
984 |
+ * a counter object. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
985 |
+ */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
986 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
987 |
+ISC_LANG_ENDDECLS |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
988 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
989 |
+#endif /* ISC_COUNTER_H */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
990 |
diff --git a/lib/isc/tests/counter_test.c b/lib/isc/tests/counter_test.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
991 |
new file mode 100644 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
992 |
index 0000000..a7a1997 |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
993 |
--- /dev/null |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
994 |
+++ b/lib/isc/tests/counter_test.c |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
995 |
@@ -0,0 +1,69 @@ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
996 |
+/* |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
997 |
+ * Copyright (C) 2014 Internet Systems Consortium, Inc. ("ISC") |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
998 |
+ * |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
999 |
+ * Permission to use, copy, modify, and/or distribute this software for any |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1000 |
+ * purpose with or without fee is hereby granted, provided that the above |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1001 |
+ * copyright notice and this permission notice appear in all copies. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1002 |
+ * |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1003 |
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1004 |
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1005 |
+ * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1006 |
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1007 |
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1008 |
+ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1009 |
+ * PERFORMANCE OF THIS SOFTWARE. |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1010 |
+ */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1011 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1012 |
+#include <config.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1013 |
+#include <stdlib.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1014 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1015 |
+#include <atf-c.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1016 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1017 |
+#include <isc/counter.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1018 |
+#include <isc/result.h> |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1019 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1020 |
+#include "isctest.h" |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1021 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1022 |
+ATF_TC(isc_counter); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1023 |
+ATF_TC_HEAD(isc_counter, tc) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1024 |
+ atf_tc_set_md_var(tc, "descr", "isc counter object"); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1025 |
+} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1026 |
+ATF_TC_BODY(isc_counter, tc) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1027 |
+ isc_result_t result; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1028 |
+ isc_counter_t *counter = NULL; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1029 |
+ int i; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1030 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1031 |
+ result = isc_test_begin(NULL, ISC_TRUE); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1032 |
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1033 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1034 |
+ result = isc_counter_create(mctx, 0, &counter); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1035 |
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1036 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1037 |
+ for (i = 0; i < 10; i++) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1038 |
+ result = isc_counter_increment(counter); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1039 |
+ ATF_CHECK_EQ(result, ISC_R_SUCCESS); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1040 |
+ } |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1041 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1042 |
+ ATF_CHECK_EQ(isc_counter_used(counter), 10); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1043 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1044 |
+ isc_counter_setlimit(counter, 15); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1045 |
+ for (i = 0; i < 10; i++) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1046 |
+ result = isc_counter_increment(counter); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1047 |
+ if (result != ISC_R_SUCCESS) |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1048 |
+ break; |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1049 |
+ } |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1050 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1051 |
+ ATF_CHECK_EQ(isc_counter_used(counter), 15); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1052 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1053 |
+ isc_counter_detach(&counter); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1054 |
+ isc_test_end(); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1055 |
+} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1056 |
+ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1057 |
+/* |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1058 |
+ * Main |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1059 |
+ */ |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1060 |
+ATF_TP_ADD_TCS(tp) { |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1061 |
+ ATF_TP_ADD_TC(tp, isc_counter); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1062 |
+ return (atf_no_error()); |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1063 |
+} |
37a03b73b5a4
20089043 Upgrade Solaris to BIND 9.6-ESV-R11-P1
William.D.Johnston <William.D.Johnston@oracle.com>
parents:
diff
changeset
|
1064 |
+ |