summaryrefslogtreecommitdiff
path: root/lib/dns/view.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dns/view.c')
-rw-r--r--lib/dns/view.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/lib/dns/view.c b/lib/dns/view.c
index 3730593b9e37..da1136c075ac 100644
--- a/lib/dns/view.c
+++ b/lib/dns/view.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2015 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -15,8 +15,6 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id$ */
-
/*! \file */
#include <config.h>
@@ -688,7 +686,8 @@ req_shutdown(isc_task_t *task, isc_event_t *event) {
isc_result_t
dns_view_createresolver(dns_view_t *view,
isc_taskmgr_t *taskmgr,
- unsigned int ntasks, unsigned int ndisp,
+ unsigned int ntasks,
+ unsigned int ndisp,
isc_socketmgr_t *socketmgr,
isc_timermgr_t *timermgr,
unsigned int options,
@@ -1322,10 +1321,16 @@ dns_view_findzonecut2(dns_view_t *view, dns_name_t *name, dns_name_t *fname,
result = dns_db_findzonecut(db, name, options, now, NULL,
fname, rdataset, sigrdataset);
if (result == ISC_R_SUCCESS) {
+#ifdef BIND9
if (zfname != NULL &&
(!dns_name_issubdomain(fname, zfname) ||
- (dns_zone_staticstub &&
- dns_name_equal(fname, zfname)))) {
+ (dns_zone_gettype(zone) == dns_zone_staticstub &&
+ dns_name_equal(fname, zfname))))
+#else
+ if (zfname != NULL &&
+ !dns_name_issubdomain(fname, zfname))
+#endif
+ {
/*
* We found a zonecut in the cache, but our
* zone delegation is better.