mirror of
https://github.com/isc-projects/bind9.git
synced 2026-04-15 22:09:31 -04:00
Take two of new semantics for ANY queries at zone cut points. Now doing
an ANY query at a zone cut point will return a delegation, except if DNS_DBFIND_GLUEOK is set, in which case DNS_R_ZONECUT will be returned as before. Someday it would probably be a good idea to get rid of DNS_R_ZONECUT entirely and just return DNS_R_GLUE in that case, but I was afraid to do that now since it might break things. These changes pass all system tests.
This commit is contained in:
parent
c209cc1ebd
commit
4e9d4ceadf
2 changed files with 7 additions and 8 deletions
|
|
@ -15,7 +15,7 @@
|
|||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: db.h,v 1.65 2001/05/14 19:25:59 halley Exp $ */
|
||||
/* $Id: db.h,v 1.66 2001/05/15 05:35:27 halley Exp $ */
|
||||
|
||||
#ifndef DNS_DB_H
|
||||
#define DNS_DB_H 1
|
||||
|
|
@ -712,8 +712,9 @@ dns_db_find(dns_db_t *db, dns_name_t *name, dns_dbversion_t *version,
|
|||
* The caller must take care not
|
||||
* to return inappropriate glue
|
||||
* to a client. This result can
|
||||
* only occur if 'db' is a
|
||||
* secure zone database.
|
||||
* only occur if 'db' is a zone
|
||||
* database and DNS_DBFIND_GLUEOK
|
||||
* is set.
|
||||
*
|
||||
* DNS_R_DNAME The data requested is beneath
|
||||
* a DNAME. node, foundname,
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: rbtdb.c,v 1.164 2001/05/15 03:52:31 gson Exp $ */
|
||||
/* $Id: rbtdb.c,v 1.165 2001/05/15 05:35:24 halley Exp $ */
|
||||
|
||||
/*
|
||||
* Principal Author: Bob Halley
|
||||
|
|
@ -1889,8 +1889,7 @@ zone_find(dns_db_t *db, dns_name_t *name, dns_dbversion_t *version,
|
|||
at_zonecut = ISC_TRUE;
|
||||
if ((search.options & DNS_DBFIND_GLUEOK) == 0
|
||||
&& type != dns_rdatatype_nxt
|
||||
&& type != dns_rdatatype_key
|
||||
&& type != dns_rdatatype_any) {
|
||||
&& type != dns_rdatatype_key) {
|
||||
/*
|
||||
* Glue is not OK, but any answer we
|
||||
* could return would be glue. Return
|
||||
|
|
@ -2053,8 +2052,7 @@ zone_find(dns_db_t *db, dns_name_t *name, dns_dbversion_t *version,
|
|||
if (type == dns_rdatatype_nxt ||
|
||||
type == dns_rdatatype_key)
|
||||
result = ISC_R_SUCCESS;
|
||||
else if (type == dns_rdatatype_any &&
|
||||
search.rbtdb->secure)
|
||||
else if (type == dns_rdatatype_any)
|
||||
result = DNS_R_ZONECUT;
|
||||
else
|
||||
result = DNS_R_GLUE;
|
||||
|
|
|
|||
Loading…
Reference in a new issue