From 7baa39fc96756dd260d5797641dae44d15fca408 Mon Sep 17 00:00:00 2001 From: Evan Hunt Date: Fri, 6 Oct 2017 12:52:21 -0700 Subject: [PATCH] [master] it's okay if dns_db_setgluecachestats() returns ISC_R_NOTIMPLEMENTED --- bin/tests/system/dyndb/driver/db.c | 14 +++++----- lib/dns/db.c | 3 ++- lib/dns/rbtdb.c | 42 +++++++++++++++--------------- lib/dns/sdb.c | 6 ++--- lib/dns/sdlz.c | 2 +- lib/dns/zone.c | 9 +++++-- 6 files changed, 41 insertions(+), 35 deletions(-) diff --git a/bin/tests/system/dyndb/driver/db.c b/bin/tests/system/dyndb/driver/db.c index d867b582cf..8d642021b6 100644 --- a/bin/tests/system/dyndb/driver/db.c +++ b/bin/tests/system/dyndb/driver/db.c @@ -599,17 +599,17 @@ static dns_dbmethods_t sampledb_methods = { resigned, isdnssec, getrrsetstats, - NULL, - NULL, + NULL, /* rpz_attach */ + NULL, /* rpz_ready */ findnodeext, findext, setcachestats, hashsize, - NULL, - NULL, - NULL, - NULL, - NULL + NULL, /* nodefullname */ + NULL, /* getsize */ + NULL, /* setservestalettl */ + NULL, /* getservestalettl */ + NULL /* setgluecachestats */ }; /* Auxiliary driver functions. */ diff --git a/lib/dns/db.c b/lib/dns/db.c index 796bbbc06d..7b77b13298 100644 --- a/lib/dns/db.c +++ b/lib/dns/db.c @@ -1153,8 +1153,9 @@ dns_db_setgluecachestats(dns_db_t *db, isc_stats_t *stats) { REQUIRE(dns_db_iszone(db)); REQUIRE(stats != NULL); - if (db->methods->setgluecachestats != NULL) + if (db->methods->setgluecachestats != NULL) { return ((db->methods->setgluecachestats)(db, stats)); + } return (ISC_R_NOTIMPLEMENTED); } diff --git a/lib/dns/rbtdb.c b/lib/dns/rbtdb.c index a8ddf9fd5b..7d54e77b1a 100644 --- a/lib/dns/rbtdb.c +++ b/lib/dns/rbtdb.c @@ -8278,24 +8278,24 @@ static dns_dbmethods_t zone_methods = { overmem, settask, getoriginnode, - NULL, + NULL, /* transfernode */ getnsec3parameters, findnsec3node, setsigningtime, getsigningtime, resigned, isdnssec, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, + NULL, /* getrrsetstats */ + NULL, /* rpz_attach */ + NULL, /* rpz_ready */ + NULL, /* findnodeext */ + NULL, /* findext */ + NULL, /* setcachestats */ hashsize, nodefullname, getsize, - NULL, - NULL, + NULL, /* setservestalettl */ + NULL, /* getservestalettl */ setgluecachestats }; @@ -8304,7 +8304,7 @@ static dns_dbmethods_t cache_methods = { detach, beginload, endload, - NULL, + NULL, /* serialize */ dump, currentversion, newversion, @@ -8329,22 +8329,22 @@ static dns_dbmethods_t cache_methods = { overmem, settask, getoriginnode, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, + NULL, /* transfernode */ + NULL, /* getnsec3parameters */ + NULL, /* findnsec3node */ + NULL, /* setsigningtime */ + NULL, /* getsigningtime */ + NULL, /* resigned */ isdnssec, getrrsetstats, - NULL, - NULL, - NULL, - NULL, + NULL, /* rpz_attach */ + NULL, /* rpz_ready */ + NULL, /* findnodeext */ + NULL, /* findext */ setcachestats, hashsize, nodefullname, - NULL, + NULL, /* getsize */ setservestalettl, getservestalettl, NULL diff --git a/lib/dns/sdb.c b/lib/dns/sdb.c index 7d36de75ee..456a54bf9f 100644 --- a/lib/dns/sdb.c +++ b/lib/dns/sdb.c @@ -1252,14 +1252,14 @@ static dns_dbmethods_t sdb_methods = { detach, beginload, endload, - NULL, + NULL, /* serialize */ dump, currentversion, newversion, attachversion, closeversion, - NULL, - NULL, + NULL, /* findnode */ + NULL, /* find */ findzonecut, attachnode, detachnode, diff --git a/lib/dns/sdlz.c b/lib/dns/sdlz.c index eac31799d2..6d0183320c 100644 --- a/lib/dns/sdlz.c +++ b/lib/dns/sdlz.c @@ -1288,7 +1288,7 @@ static dns_dbmethods_t sdlzdb_methods = { detach, beginload, endload, - NULL, + NULL, /* serialize */ dump, currentversion, newversion, diff --git a/lib/dns/zone.c b/lib/dns/zone.c index 3395d68488..d0da729750 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -2101,8 +2101,12 @@ zone_load(dns_zone_t *zone, unsigned int flags, isc_boolean_t locked) { if (zone->type == dns_zone_master || zone->type == dns_zone_slave) { result = dns_db_setgluecachestats(db, zone->gluecachestats); - if (result != ISC_R_SUCCESS) + if (result == ISC_R_NOTIMPLEMENTED) { + result = ISC_R_SUCCESS; + } + if (result != ISC_R_SUCCESS) { goto cleanup; + } } if (! dns_db_ispersistent(db)) { @@ -14671,8 +14675,9 @@ receive_secure_db(isc_task_t *task, isc_event_t *event) { goto failure; result = dns_db_setgluecachestats(db, zone->gluecachestats); - if (result != ISC_R_SUCCESS) + if (result != ISC_R_SUCCESS && result != ISC_R_NOTIMPLEMENTED) { goto failure; + } result = dns_db_newversion(db, &version); if (result != ISC_R_SUCCESS)