]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
use member name initialization for methods
authorEvan Hunt <each@isc.org>
Fri, 17 Feb 2023 19:46:58 +0000 (11:46 -0800)
committerEvan Hunt <each@isc.org>
Tue, 21 Feb 2023 18:13:10 +0000 (10:13 -0800)
initialize dns_dbmethods, dns_sdbmethods and dns_rdatasetmethods
using explicit struct member names, so we don't have to keep track
of NULLs for unimplemented functions any longer.

bin/named/builtin.c
bin/tests/system/dyndb/driver/db.c
lib/dns/dnsrps.c
lib/dns/keytable.c
lib/dns/ncache.c
lib/dns/rbtdb.c
lib/dns/rdatalist.c
lib/dns/rdataset.c
lib/dns/sdb.c
lib/dns/sdlz.c

index 8d7d634cbf821af07d5e6a8248ee3bc154874215..6d2fe315bb488248bc0e0efb98c0bd7b7ac0eb82 100644 (file)
@@ -617,13 +617,17 @@ builtin_destroy(const char *zone, void *driverdata, void **dbdata) {
 }
 
 static dns_sdbmethods_t builtin_methods = {
-       builtin_lookup, builtin_authority, NULL, /* allnodes */
-       builtin_create, builtin_destroy,   NULL
+       .lookup = builtin_lookup,
+       .authority = builtin_authority,
+       .create = builtin_create,
+       .destroy = builtin_destroy,
 };
 
 static dns_sdbmethods_t dns64_methods = {
-       NULL,           builtin_authority, NULL, /* allnodes */
-       builtin_create, builtin_destroy,   dns64_lookup,
+       .authority = builtin_authority,
+       .create = builtin_create,
+       .destroy = builtin_destroy,
+       .lookup2 = dns64_lookup,
 };
 
 isc_result_t
index 5ecbd7904f2eb55315ceada3e3ddba289c30ecdb..05ae32b618b575667b62fe754681f84281d6b52b 100644 (file)
@@ -506,26 +506,42 @@ hashsize(dns_db_t *db) {
  * determine which implementation of dns_db_*() function to call.
  */
 static dns_dbmethods_t sampledb_methods = {
-       attach,         detach,         beginload,
-       endload,        dump,           currentversion,
-       newversion,     attachversion,  closeversion,
-       findnode,       find,           findzonecut,
-       attachnode,     detachnode,     expirenode,
-       printnode,      createiterator, findrdataset,
-       allrdatasets,   addrdataset,    subtractrdataset,
-       deleterdataset, issecure,       nodecount,
-       NULL,           overmem,        setloop,
-       getoriginnode,  transfernode,   getnsec3parameters,
-       findnsec3node,  setsigningtime, getsigningtime,
-       resigned,       isdnssec,       getrrsetstats,
-       findnodeext,    findext,        setcachestats,
-       hashsize,       NULL, /* nodefullname */
-       NULL,                 /* getsize */
-       NULL,                 /* setservestalettl */
-       NULL,                 /* getservestalettl */
-       NULL,                 /* setservestalerefresh */
-       NULL,                 /* getservestalerefresh */
-       NULL,                 /* setgluecachestats */
+       .attach = attach,
+       .detach = detach,
+       .currentversion = currentversion,
+       .newversion = newversion,
+       .attachversion = attachversion,
+       .closeversion = closeversion,
+       .findnode = findnode,
+       .find = find,
+       .findzonecut = findzonecut,
+       .attachnode = attachnode,
+       .detachnode = detachnode,
+       .expirenode = expirenode,
+       .printnode = printnode,
+       .createiterator = createiterator,
+       .findrdataset = findrdataset,
+       .allrdatasets = allrdatasets,
+       .addrdataset = addrdataset,
+       .subtractrdataset = subtractrdataset,
+       .deleterdataset = deleterdataset,
+       .issecure = issecure,
+       .nodecount = nodecount,
+       .overmem = overmem,
+       .setloop = setloop,
+       .getoriginnode = getoriginnode,
+       .transfernode = transfernode,
+       .getnsec3parameters = getnsec3parameters,
+       .findnsec3node = findnsec3node,
+       .setsigningtime = setsigningtime,
+       .getsigningtime = getsigningtime,
+       .resigned = resigned,
+       .isdnssec = isdnssec,
+       .getrrsetstats = getrrsetstats,
+       .findnodeext = findnodeext,
+       .findext = findext,
+       .setcachestats = setcachestats,
+       .hashsize = hashsize,
 };
 
 /* Auxiliary driver functions. */
index 341c116f233b56966f8815dbd40aacf7de1d9e3f..5dede174506431452eac3e5c76e23ed7309f6616 100644 (file)
@@ -931,72 +931,25 @@ rpsdb_rdatasetiter_current(dns_rdatasetiter_t *iterator,
 }
 
 static dns_dbmethods_t rpsdb_db_methods = {
-       rpsdb_attach,
-       rpsdb_detach,
-       NULL, /* beginload */
-       NULL, /* endload */
-       NULL, /* dump */
-       NULL, /* currentversion */
-       NULL, /* newversion */
-       NULL, /* attachversion */
-       NULL, /* closeversion */
-       rpsdb_findnode,
-       rpsdb_finddb,
-       NULL, /* findzonecut*/
-       rpsdb_attachnode,
-       rpsdb_detachnode,
-       NULL, /* expirenode */
-       NULL, /* printnode */
-       NULL, /* createiterator */
-       rpsdb_findrdataset,
-       rpsdb_allrdatasets,
-       NULL, /* addrdataset */
-       NULL, /* subtractrdataset */
-       NULL, /* deleterdataset */
-       rpsdb_issecure,
-       NULL, /* nodecount */
-       NULL, /* ispersistent */
-       NULL, /* overmem */
-       NULL, /* setloop */
-       rpsdb_getoriginnode,
-       NULL, /* transfernode */
-       NULL, /* getnsec3parameters */
-       NULL, /* findnsec3node */
-       NULL, /* setsigningtime */
-       NULL, /* getsigningtime */
-       NULL, /* resigned */
-       NULL, /* isdnssec */
-       NULL, /* getrrsetstats */
-       NULL, /* findnodeext */
-       NULL, /* findext */
-       NULL, /* setcachestats */
-       NULL, /* hashsize */
-       NULL, /* nodefullname */
-       NULL, /* getsize */
-       NULL, /* setservestalettl */
-       NULL, /* getservestalettl */
-       NULL, /* setservestalerefresh */
-       NULL, /* getservestalerefresh */
-       NULL, /* setgluecachestats */
+       .attach = rpsdb_attach,
+       .detach = rpsdb_detach,
+       .findnode = rpsdb_findnode,
+       .find = rpsdb_finddb,
+       .attachnode = rpsdb_attachnode,
+       .detachnode = rpsdb_detachnode,
+       .findrdataset = rpsdb_findrdataset,
+       .allrdatasets = rpsdb_allrdatasets,
+       .issecure = rpsdb_issecure,
+       .getoriginnode = rpsdb_getoriginnode,
 };
 
 static dns_rdatasetmethods_t rpsdb_rdataset_methods = {
-       rpsdb_rdataset_disassociate,
-       rpsdb_rdataset_first,
-       rpsdb_rdataset_next,
-       rpsdb_rdataset_current,
-       rpsdb_rdataset_clone,
-       rpsdb_rdataset_count,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL
+       .disassociate = rpsdb_rdataset_disassociate,
+       first = rpsdb_rdataset_first,
+       .next = rpsdb_rdataset_next,
+       .current = rpsdb_rdataset_current,
+       .clone = rpsdb_rdataset_clone,
+       .count = rpsdb_rdataset_count,
 };
 
 static dns_rdatasetitermethods_t rpsdb_rdatasetiter_methods = {
index fa4814236cccd7083e98f56537a73230a0794cdf..40748a59f0dff76c366fd812c418cbb7bfe3a669 100644 (file)
@@ -74,22 +74,11 @@ static void
 keynode_clone(dns_rdataset_t *source, dns_rdataset_t *target);
 
 static dns_rdatasetmethods_t methods = {
-       keynode_disassociate,
-       keynode_first,
-       keynode_next,
-       keynode_current,
-       keynode_clone,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL, /* settrust */
-       NULL, /* expire */
-       NULL, /* clearprefetch */
-       NULL,
-       NULL,
-       NULL /* addglue */
+       .disassociate = keynode_disassociate,
+       .first = keynode_first,
+       .next = keynode_next,
+       .current = keynode_current,
+       .clone = keynode_clone,
 };
 
 static void
index ba6716a88a5efc3db0c83b5b13db7da83085a60f..52740a75d0fd3a40ac4321ce9569ecfc3c4c391a 100644 (file)
@@ -507,22 +507,13 @@ rdataset_settrust(dns_rdataset_t *rdataset, dns_trust_t trust) {
 }
 
 static dns_rdatasetmethods_t rdataset_methods = {
-       rdataset_disassociate,
-       rdataset_first,
-       rdataset_next,
-       rdataset_current,
-       rdataset_clone,
-       rdataset_count,
-       NULL,              /* addnoqname */
-       NULL,              /* getnoqname */
-       NULL,              /* addclosest */
-       NULL,              /* getclosest */
-       rdataset_settrust, /* settrust */
-       NULL,              /* expire */
-       NULL,              /* clearprefetch */
-       NULL,              /* setownercase */
-       NULL,              /* getownercase */
-       NULL               /* addglue */
+       .disassociate = rdataset_disassociate,
+       .first = rdataset_first,
+       .next = rdataset_next,
+       .current = rdataset_current,
+       .clone = rdataset_clone,
+       .count = rdataset_count,
+       .settrust = rdataset_settrust,
 };
 
 isc_result_t
index ec93e9c1e3d0f5c3ed90afad10fd84a5b0a0f42c..bb8dfe75eb1c1cd93c6d1664d70138edf799c7a0 100644 (file)
@@ -653,40 +653,30 @@ free_gluetable(rbtdb_version_t *version);
 static isc_result_t
 nodefullname(dns_db_t *db, dns_dbnode_t *node, dns_name_t *name);
 
-static dns_rdatasetmethods_t rdataset_methods = { rdataset_disassociate,
-                                                 rdataset_first,
-                                                 rdataset_next,
-                                                 rdataset_current,
-                                                 rdataset_clone,
-                                                 rdataset_count,
-                                                 NULL, /* addnoqname */
-                                                 rdataset_getnoqname,
-                                                 NULL, /* addclosest */
-                                                 rdataset_getclosest,
-                                                 rdataset_settrust,
-                                                 rdataset_expire,
-                                                 rdataset_clearprefetch,
-                                                 rdataset_setownercase,
-                                                 rdataset_getownercase,
-                                                 rdataset_addglue };
+static dns_rdatasetmethods_t rdataset_methods = {
+       .disassociate = rdataset_disassociate,
+       .first = rdataset_first,
+       .next = rdataset_next,
+       .current = rdataset_current,
+       .clone = rdataset_clone,
+       .count = rdataset_count,
+       .getnoqname = rdataset_getnoqname,
+       .getclosest = rdataset_getclosest,
+       .settrust = rdataset_settrust,
+       .expire = rdataset_expire,
+       .clearprefetch = rdataset_clearprefetch,
+       .setownercase = rdataset_setownercase,
+       .getownercase = rdataset_getownercase,
+       .addglue = rdataset_addglue
+};
 
 static dns_rdatasetmethods_t slab_methods = {
-       rdataset_disassociate,
-       rdataset_first,
-       rdataset_next,
-       rdataset_current,
-       rdataset_clone,
-       rdataset_count,
-       NULL, /* addnoqname */
-       NULL, /* getnoqname */
-       NULL, /* addclosest */
-       NULL, /* getclosest */
-       NULL, /* settrust */
-       NULL, /* expire */
-       NULL, /* clearprefetch */
-       NULL, /* setownercase */
-       NULL, /* getownercase */
-       NULL  /* addglue */
+       .disassociate = rdataset_disassociate,
+       .first = rdataset_first,
+       .next = rdataset_next,
+       .current = rdataset_current,
+       .clone = rdataset_clone,
+       .count = rdataset_count,
 };
 
 static void
@@ -8074,101 +8064,83 @@ getservestalerefresh(dns_db_t *db, uint32_t *interval) {
        return (ISC_R_SUCCESS);
 }
 
-static dns_dbmethods_t zone_methods = { attach,
-                                       detach,
-                                       beginload,
-                                       endload,
-                                       dump,
-                                       currentversion,
-                                       newversion,
-                                       attachversion,
-                                       closeversion,
-                                       findnode,
-                                       zone_find,
-                                       NULL, /* findzonecut */
-                                       attachnode,
-                                       detachnode,
-                                       expirenode,
-                                       printnode,
-                                       createiterator,
-                                       zone_findrdataset,
-                                       allrdatasets,
-                                       addrdataset,
-                                       subtractrdataset,
-                                       deleterdataset,
-                                       issecure,
-                                       nodecount,
-                                       NULL,
-                                       overmem,
-                                       setloop,
-                                       getoriginnode,
-                                       NULL, /* transfernode */
-                                       getnsec3parameters,
-                                       findnsec3node,
-                                       setsigningtime,
-                                       getsigningtime,
-                                       resigned,
-                                       isdnssec,
-                                       NULL, /* getrrsetstats */
-                                       NULL, /* findnodeext */
-                                       NULL, /* findext */
-                                       NULL, /* setcachestats */
-                                       hashsize,
-                                       nodefullname,
-                                       getsize,
-                                       NULL, /* setservestalettl */
-                                       NULL, /* getservestalettl */
-                                       NULL, /* setservestalerefresh */
-                                       NULL, /* getservestalerefresh */
-                                       setgluecachestats };
-
-static dns_dbmethods_t cache_methods = { attach,
-                                        detach,
-                                        beginload,
-                                        endload,
-                                        dump,
-                                        currentversion,
-                                        newversion,
-                                        attachversion,
-                                        closeversion,
-                                        findnode,
-                                        cache_find,
-                                        cache_findzonecut,
-                                        attachnode,
-                                        detachnode,
-                                        expirenode,
-                                        printnode,
-                                        createiterator,
-                                        cache_findrdataset,
-                                        allrdatasets,
-                                        addrdataset,
-                                        subtractrdataset,
-                                        deleterdataset,
-                                        issecure,
-                                        nodecount,
-                                        NULL,
-                                        overmem,
-                                        setloop,
-                                        getoriginnode,
-                                        NULL, /* transfernode */
-                                        NULL, /* getnsec3parameters */
-                                        NULL, /* findnsec3node */
-                                        NULL, /* setsigningtime */
-                                        NULL, /* getsigningtime */
-                                        NULL, /* resigned */
-                                        isdnssec,
-                                        getrrsetstats,
-                                        NULL, /* findnodeext */
-                                        NULL, /* findext */
-                                        setcachestats,
-                                        hashsize,
-                                        nodefullname,
-                                        NULL, /* getsize */
-                                        setservestalettl,
-                                        getservestalettl,
-                                        setservestalerefresh,
-                                        getservestalerefresh,
-                                        NULL };
+static dns_dbmethods_t zone_methods = {
+       .attach = attach,
+       .detach = detach,
+       .beginload = beginload,
+       .endload = endload,
+       .dump = dump,
+       .currentversion = currentversion,
+       .newversion = newversion,
+       .attachversion = attachversion,
+       .closeversion = closeversion,
+       .findnode = findnode,
+       .find = zone_find,
+       .attachnode = attachnode,
+       .detachnode = detachnode,
+       .expirenode = expirenode,
+       .printnode = printnode,
+       .createiterator = createiterator,
+       .findrdataset = zone_findrdataset,
+       .allrdatasets = allrdatasets,
+       .addrdataset = addrdataset,
+       .subtractrdataset = subtractrdataset,
+       .deleterdataset = deleterdataset,
+       .issecure = issecure,
+       .nodecount = nodecount,
+       .overmem = overmem,
+       .setloop = setloop,
+       .getoriginnode = getoriginnode,
+       .getnsec3parameters = getnsec3parameters,
+       .findnsec3node = findnsec3node,
+       .setsigningtime = setsigningtime,
+       .getsigningtime = getsigningtime,
+       .resigned = resigned,
+       .isdnssec = isdnssec,
+       .hashsize = hashsize,
+       .nodefullname = nodefullname,
+       .getsize = getsize,
+       .setgluecachestats = setgluecachestats
+};
+
+static dns_dbmethods_t cache_methods = {
+       .attach = attach,
+       .detach = detach,
+       .beginload = beginload,
+       .endload = endload,
+       .dump = dump,
+       .currentversion = currentversion,
+       .newversion = newversion,
+       .attachversion = attachversion,
+       .closeversion = closeversion,
+       .findnode = findnode,
+       .find = cache_find,
+       .findzonecut = cache_findzonecut,
+       .attachnode = attachnode,
+       .detachnode = detachnode,
+       .expirenode = expirenode,
+       .printnode = printnode,
+       .createiterator = createiterator,
+       .findrdataset = cache_findrdataset,
+       .allrdatasets = allrdatasets,
+       .addrdataset = addrdataset,
+       .subtractrdataset = subtractrdataset,
+       .deleterdataset = deleterdataset,
+       .issecure = issecure,
+       .nodecount = nodecount,
+       .overmem = overmem,
+       .setloop = setloop,
+       .getoriginnode = getoriginnode,
+       .isdnssec = isdnssec,
+       .getrrsetstats = getrrsetstats,
+       .setcachestats = setcachestats,
+       .hashsize = hashsize,
+       .nodefullname = nodefullname,
+       .setservestalettl = setservestalettl,
+       .getservestalettl = getservestalettl,
+       .setservestalerefresh = setservestalerefresh,
+       .getservestalerefresh = getservestalerefresh,
+};
 
 isc_result_t
 dns_rbtdb_create(isc_mem_t *mctx, const dns_name_t *origin, dns_dbtype_t type,
index 27bd650bbd058e015283a1ec152e24a3c5d42c09..1511279da8a825b46438e4e23c20e494000bdbfb 100644 (file)
 #include <dns/rdataset.h>
 
 static dns_rdatasetmethods_t methods = {
-       dns_rdatalist_disassociate,
-       dns_rdatalist_first,
-       dns_rdatalist_next,
-       dns_rdatalist_current,
-       dns_rdatalist_clone,
-       dns_rdatalist_count,
-       dns_rdatalist_addnoqname,
-       dns_rdatalist_getnoqname,
-       dns_rdatalist_addclosest,
-       dns_rdatalist_getclosest,
-       NULL, /* settrust */
-       NULL, /* expire */
-       NULL, /* clearprefetch */
-       dns_rdatalist_setownercase,
-       dns_rdatalist_getownercase,
-       NULL /* addglue */
+       .disassociate = dns_rdatalist_disassociate,
+       .first = dns_rdatalist_first,
+       .next = dns_rdatalist_next,
+       .current = dns_rdatalist_current,
+       .clone = dns_rdatalist_clone,
+       .count = dns_rdatalist_count,
+       .addnoqname = dns_rdatalist_addnoqname,
+       .getnoqname = dns_rdatalist_getnoqname,
+       .addclosest = dns_rdatalist_addclosest,
+       .getclosest = dns_rdatalist_getclosest,
+       .setownercase = dns_rdatalist_setownercase,
+       .getownercase = dns_rdatalist_getownercase,
 };
 
 void
index 2367ecca64d35be824958d3ae4b1bae012ae1795..6994756836455c1ea5c522161886266db5bc83b7 100644 (file)
@@ -181,22 +181,12 @@ question_count(dns_rdataset_t *rdataset) {
 }
 
 static dns_rdatasetmethods_t question_methods = {
-       question_disassociate,
-       question_cursor,
-       question_cursor,
-       question_current,
-       question_clone,
-       question_count,
-       NULL, /* addnoqname */
-       NULL, /* getnoqname */
-       NULL, /* addclosest */
-       NULL, /* getclosest */
-       NULL, /* settrust */
-       NULL, /* expire */
-       NULL, /* clearprefetch */
-       NULL, /* setownercase */
-       NULL, /* getownercase */
-       NULL  /* addglue */
+       .disassociate = question_disassociate,
+       .first = question_cursor,
+       .next = question_cursor,
+       .current = question_current,
+       .clone = question_clone,
+       .count = question_count,
 };
 
 void
index 13077c8549b6bf8b886f6170fc93eed73bad3fd3..7d2c2f1f6cdb04fdcadfac5e09a72346ede903cf 100644 (file)
@@ -1128,40 +1128,20 @@ ispersistent(dns_db_t *db) {
 }
 
 static dns_dbmethods_t sdb_methods = {
-       attach,         detach,       NULL,               /* beginload */
-       NULL,                                             /* endload */
-       NULL,                                             /* dump */
-       currentversion, NULL,                             /* newversion */
-       attachversion,  closeversion, NULL,               /* findnode */
-       NULL,                                             /* find */
-       NULL,                                             /* findzonecut */
-       attachnode,     detachnode,   NULL,               /* expirenode */
-       NULL,                                             /* printnode */
-       createiterator, findrdataset, allrdatasets, NULL, /* addrdataset */
-       NULL,                                             /* subtractrdataset */
-       NULL,                                             /* deleterdataset */
-       NULL,                                             /* issecure */
-       NULL,                                             /* nodecount */
-       ispersistent,   NULL,                             /* overmem */
-       NULL,                                             /* setloop */
-       getoriginnode,                                    /* getoriginnode */
-       NULL,                                             /* transfernode */
-       NULL,                               /* getnsec3parameters */
-       NULL,                               /* findnsec3node */
-       NULL,                               /* setsigningtime */
-       NULL,                               /* getsigningtime */
-       NULL,                               /* resigned */
-       NULL,                               /* isdnssec */
-       NULL,                               /* getrrsetstats */
-       findnodeext,    findext,      NULL, /* setcachestats */
-       NULL,                               /* hashsize */
-       NULL,                               /* nodefullname */
-       NULL,                               /* getsize */
-       NULL,                               /* setservestalettl */
-       NULL,                               /* getservestalettl */
-       NULL,                               /* setservestalerefresh */
-       NULL,                               /* getservestalerefresh */
-       NULL,                               /* setgluecachestats */
+       .attach = attach,
+       .detach = detach,
+       .currentversion = currentversion,
+       .attachversion = attachversion,
+       .closeversion = closeversion,
+       .attachnode = attachnode,
+       .detachnode = detachnode,
+       .createiterator = createiterator,
+       .findrdataset = findrdataset,
+       .allrdatasets = allrdatasets,
+       .ispersistent = ispersistent,
+       .getoriginnode = getoriginnode,
+       .findnodeext = findnodeext,
+       .findext = findext,
 };
 
 static isc_result_t
@@ -1262,22 +1242,14 @@ rdataset_clone(dns_rdataset_t *source, dns_rdataset_t *target) {
 }
 
 static dns_rdatasetmethods_t sdb_rdataset_methods = {
-       disassociate,
-       dns_rdatalist_first,
-       dns_rdatalist_next,
-       dns_rdatalist_current,
-       rdataset_clone,
-       dns_rdatalist_count,
-       dns_rdatalist_addnoqname,
-       dns_rdatalist_getnoqname,
-       NULL, /* addclosest */
-       NULL, /* getclosest */
-       NULL, /* settrust */
-       NULL, /* expire */
-       NULL, /* clearprefetch */
-       NULL, /* setownercase */
-       NULL, /* getownercase */
-       NULL  /* addglue */
+       .disassociate = disassociate,
+       .first = dns_rdatalist_first,
+       .next = dns_rdatalist_next,
+       .current = dns_rdatalist_current,
+       .clone = rdataset_clone,
+       .count = dns_rdatalist_count,
+       .addnoqname = dns_rdatalist_addnoqname,
+       .getnoqname = dns_rdatalist_getnoqname,
 };
 
 static void
index 7ed5691b0eb5daf3c73a4a1a218ac73c9b66bc6e..0c1031f113ec5dee3f3d5d407b6ec658c054be99 100644 (file)
@@ -1179,34 +1179,31 @@ getoriginnode(dns_db_t *db, dns_dbnode_t **nodep) {
 }
 
 static dns_dbmethods_t sdlzdb_methods = {
-       attach,         detach,         NULL, /* beginload */
-       NULL,                                 /* endload */
-       NULL,                                 /* dump */
-       currentversion, newversion,     attachversion,
-       closeversion,   findnode,       find,
-       NULL, /* findzonecut */
-       attachnode,     detachnode,     expirenode,
-       printnode,      createiterator, findrdataset,
-       allrdatasets,   addrdataset,    subtractrdataset,
-       deleterdataset, issecure,       nodecount,
-       NULL,           overmem,        setloop,
-       getoriginnode,  NULL,                 /* transfernode */
-       NULL,                                 /* getnsec3parameters */
-       NULL,                                 /* findnsec3node */
-       NULL,                                 /* setsigningtime */
-       NULL,                                 /* getsigningtime */
-       NULL,                                 /* resigned */
-       NULL,                                 /* isdnssec */
-       NULL,                                 /* getrrsetstats */
-       findnodeext,    findext,        NULL, /* setcachestats */
-       NULL,                                 /* hashsize */
-       NULL,                                 /* nodefullname */
-       NULL,                                 /* getsize */
-       NULL,                                 /* setservestalettl */
-       NULL,                                 /* getservestalettl */
-       NULL,                                 /* setservestalerefresh */
-       NULL,                                 /* getservestalerefresh */
-       NULL,                                 /* setgluecachestats */
+       .attach = attach,
+       .detach = detach,
+       .currentversion = currentversion,
+       .newversion = newversion,
+       .attachversion = attachversion,
+       .closeversion = closeversion,
+       .findnode = findnode,
+       .find = find,
+       .attachnode = attachnode,
+       .detachnode = detachnode,
+       .expirenode = expirenode,
+       .printnode = printnode,
+       .createiterator = createiterator,
+       .findrdataset = findrdataset,
+       .allrdatasets = allrdatasets,
+       .addrdataset = addrdataset,
+       .subtractrdataset = subtractrdataset,
+       .deleterdataset = deleterdataset,
+       .issecure = issecure,
+       .nodecount = nodecount,
+       .overmem = overmem,
+       .setloop = setloop,
+       .getoriginnode = getoriginnode,
+       .findnodeext = findnodeext,
+       .findext = findext,
 };
 
 /*
@@ -1349,22 +1346,14 @@ rdataset_clone(dns_rdataset_t *source, dns_rdataset_t *target) {
 }
 
 static dns_rdatasetmethods_t rdataset_methods = {
-       disassociate,
-       dns_rdatalist_first,
-       dns_rdatalist_next,
-       dns_rdatalist_current,
-       rdataset_clone,
-       dns_rdatalist_count,
-       dns_rdatalist_addnoqname,
-       dns_rdatalist_getnoqname,
-       NULL, /* addclosest */
-       NULL, /* getclosest */
-       NULL, /* settrust */
-       NULL, /* expire */
-       NULL, /* clearprefetch */
-       NULL, /* setownercase */
-       NULL, /* getownercase */
-       NULL  /* addglue */
+       .disassociate = disassociate,
+       .first = dns_rdatalist_first,
+       .next = dns_rdatalist_next,
+       .current = dns_rdatalist_current,
+       .clone = rdataset_clone,
+       .count = dns_rdatalist_count,
+       .addnoqname = dns_rdatalist_addnoqname,
+       .getnoqname = dns_rdatalist_getnoqname,
 };
 
 static void