mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-31 06:25:31 +00:00
Use designated initializer in dns_zone_create
Shorten the code and make it less prone to initialisation errors (it is still easy to forget adding an initializer, but it now defaults to 0).
This commit is contained in:
166
lib/dns/zone.c
166
lib/dns/zone.c
@@ -989,14 +989,51 @@ inc_stats(dns_zone_t *zone, isc_statscounter_t counter) {
|
||||
isc_result_t
|
||||
dns_zone_create(dns_zone_t **zonep, isc_mem_t *mctx) {
|
||||
isc_result_t result;
|
||||
dns_zone_t *zone;
|
||||
isc_time_t now;
|
||||
dns_zone_t *zone = NULL;
|
||||
dns_zone_t z = { .masterformat = dns_masterformat_none,
|
||||
.journalsize = -1,
|
||||
.rdclass = dns_rdataclass_none,
|
||||
.type = dns_zone_none,
|
||||
.refresh = DNS_ZONE_DEFAULTREFRESH,
|
||||
.retry = DNS_ZONE_DEFAULTRETRY,
|
||||
.maxrefresh = DNS_ZONE_MAXREFRESH,
|
||||
.minrefresh = DNS_ZONE_MINREFRESH,
|
||||
.maxretry = DNS_ZONE_MAXRETRY,
|
||||
.minretry = DNS_ZONE_MINRETRY,
|
||||
.notifytype = dns_notifytype_yes,
|
||||
.zero_no_soa_ttl = true,
|
||||
.check_names = dns_severity_ignore,
|
||||
.idlein = DNS_DEFAULT_IDLEIN,
|
||||
.idleout = DNS_DEFAULT_IDLEOUT,
|
||||
.notifysrc4dscp = -1,
|
||||
.notifysrc6dscp = -1,
|
||||
.xfrsource4dscp = -1,
|
||||
.xfrsource6dscp = -1,
|
||||
.altxfrsource4dscp = -1,
|
||||
.altxfrsource6dscp = -1,
|
||||
.maxxfrin = MAX_XFER_TIME,
|
||||
.maxxfrout = MAX_XFER_TIME,
|
||||
.sigvalidityinterval = 30 * 24 * 3600,
|
||||
.sigresigninginterval = 7 * 24 * 3600,
|
||||
.statlevel = dns_zonestat_none,
|
||||
.notifydelay = 5,
|
||||
.signatures = 10,
|
||||
.nodes = 100,
|
||||
.privatetype = (dns_rdatatype_t)0xffffU,
|
||||
.rpz_num = DNS_RPZ_INVALID_NUM,
|
||||
.requestixfr = true,
|
||||
.ixfr_ratio = 100,
|
||||
.requestexpire = true,
|
||||
.updatemethod = dns_updatemethod_increment,
|
||||
.magic = ZONE_MAGIC };
|
||||
|
||||
REQUIRE(zonep != NULL && *zonep == NULL);
|
||||
REQUIRE(mctx != NULL);
|
||||
|
||||
TIME_NOW(&now);
|
||||
zone = isc_mem_get(mctx, sizeof(*zone));
|
||||
*zone = z;
|
||||
|
||||
zone->mctx = NULL;
|
||||
isc_mem_attach(mctx, &zone->mctx);
|
||||
@@ -1006,88 +1043,27 @@ dns_zone_create(dns_zone_t **zonep, isc_mem_t *mctx) {
|
||||
#ifdef DNS_ZONE_CHECKLOCK
|
||||
zone->locked = false;
|
||||
#endif /* ifdef DNS_ZONE_CHECKLOCK */
|
||||
zone->db = NULL;
|
||||
zone->zmgr = NULL;
|
||||
|
||||
zone->notifytime = now;
|
||||
|
||||
ISC_LINK_INIT(zone, link);
|
||||
isc_refcount_init(&zone->erefs, 1);
|
||||
isc_refcount_init(&zone->irefs, 0);
|
||||
dns_name_init(&zone->origin, NULL);
|
||||
zone->strnamerd = NULL;
|
||||
zone->strname = NULL;
|
||||
zone->strrdclass = NULL;
|
||||
zone->strviewname = NULL;
|
||||
zone->masterfile = NULL;
|
||||
zone->stream = NULL;
|
||||
ISC_LIST_INIT(zone->includes);
|
||||
ISC_LIST_INIT(zone->newincludes);
|
||||
zone->nincludes = 0;
|
||||
zone->masterformat = dns_masterformat_none;
|
||||
zone->masterstyle = NULL;
|
||||
zone->keydirectory = NULL;
|
||||
zone->journalsize = -1;
|
||||
zone->journal = NULL;
|
||||
zone->rdclass = dns_rdataclass_none;
|
||||
zone->type = dns_zone_none;
|
||||
atomic_init(&zone->flags, 0);
|
||||
atomic_init(&zone->options, 0);
|
||||
atomic_init(&zone->keyopts, 0);
|
||||
zone->db_argc = 0;
|
||||
zone->db_argv = NULL;
|
||||
isc_time_settoepoch(&zone->expiretime);
|
||||
isc_time_settoepoch(&zone->refreshtime);
|
||||
isc_time_settoepoch(&zone->dumptime);
|
||||
isc_time_settoepoch(&zone->loadtime);
|
||||
zone->notifytime = now;
|
||||
isc_time_settoepoch(&zone->resigntime);
|
||||
isc_time_settoepoch(&zone->keywarntime);
|
||||
isc_time_settoepoch(&zone->signingtime);
|
||||
isc_time_settoepoch(&zone->nsec3chaintime);
|
||||
isc_time_settoepoch(&zone->refreshkeytime);
|
||||
zone->refreshkeyinterval = 0;
|
||||
zone->refreshkeycount = 0;
|
||||
zone->refresh = DNS_ZONE_DEFAULTREFRESH;
|
||||
zone->retry = DNS_ZONE_DEFAULTRETRY;
|
||||
zone->expire = 0;
|
||||
zone->minimum = 0;
|
||||
zone->maxrefresh = DNS_ZONE_MAXREFRESH;
|
||||
zone->minrefresh = DNS_ZONE_MINREFRESH;
|
||||
zone->maxretry = DNS_ZONE_MAXRETRY;
|
||||
zone->minretry = DNS_ZONE_MINRETRY;
|
||||
zone->masters = NULL;
|
||||
zone->masterdscps = NULL;
|
||||
zone->masterkeynames = NULL;
|
||||
zone->mastertlsnames = NULL;
|
||||
zone->mastersok = NULL;
|
||||
zone->masterscnt = 0;
|
||||
zone->curmaster = 0;
|
||||
zone->soattl = 0;
|
||||
zone->maxttl = 0;
|
||||
zone->notify = NULL;
|
||||
zone->notifykeynames = NULL;
|
||||
zone->notifytlsnames = NULL;
|
||||
zone->notifydscp = NULL;
|
||||
zone->notifytype = dns_notifytype_yes;
|
||||
zone->notifycnt = 0;
|
||||
zone->task = NULL;
|
||||
zone->loadtask = NULL;
|
||||
zone->update_acl = NULL;
|
||||
zone->forward_acl = NULL;
|
||||
zone->notify_acl = NULL;
|
||||
zone->query_acl = NULL;
|
||||
zone->queryon_acl = NULL;
|
||||
zone->xfr_acl = NULL;
|
||||
zone->update_disabled = false;
|
||||
zone->zero_no_soa_ttl = true;
|
||||
zone->check_names = dns_severity_ignore;
|
||||
zone->request = NULL;
|
||||
zone->lctx = NULL;
|
||||
zone->readio = NULL;
|
||||
zone->dctx = NULL;
|
||||
zone->writeio = NULL;
|
||||
zone->timer = NULL;
|
||||
zone->idlein = DNS_DEFAULT_IDLEIN;
|
||||
zone->idleout = DNS_DEFAULT_IDLEOUT;
|
||||
zone->log_key_expired_timer = 0;
|
||||
ISC_LIST_INIT(zone->notifies);
|
||||
isc_sockaddr_any(&zone->notifysrc4);
|
||||
isc_sockaddr_any6(&zone->notifysrc6);
|
||||
@@ -1095,74 +1071,14 @@ dns_zone_create(dns_zone_t **zonep, isc_mem_t *mctx) {
|
||||
isc_sockaddr_any6(&zone->xfrsource6);
|
||||
isc_sockaddr_any(&zone->altxfrsource4);
|
||||
isc_sockaddr_any6(&zone->altxfrsource6);
|
||||
zone->notifysrc4dscp = -1;
|
||||
zone->notifysrc6dscp = -1;
|
||||
zone->xfrsource4dscp = -1;
|
||||
zone->xfrsource6dscp = -1;
|
||||
zone->altxfrsource4dscp = -1;
|
||||
zone->altxfrsource6dscp = -1;
|
||||
zone->xfr = NULL;
|
||||
zone->tsigkey = NULL;
|
||||
zone->transport = NULL;
|
||||
zone->maxxfrin = MAX_XFER_TIME;
|
||||
zone->maxxfrout = MAX_XFER_TIME;
|
||||
zone->ssutable = NULL;
|
||||
zone->sigvalidityinterval = 30 * 24 * 3600;
|
||||
zone->keyvalidityinterval = 0;
|
||||
zone->sigresigninginterval = 7 * 24 * 3600;
|
||||
zone->kasp = NULL;
|
||||
zone->view = NULL;
|
||||
zone->prev_view = NULL;
|
||||
zone->checkmx = NULL;
|
||||
zone->checksrv = NULL;
|
||||
zone->checkns = NULL;
|
||||
ISC_LINK_INIT(zone, statelink);
|
||||
zone->statelist = NULL;
|
||||
zone->stats = NULL;
|
||||
zone->requeststats_on = false;
|
||||
zone->statlevel = dns_zonestat_none;
|
||||
zone->requeststats = NULL;
|
||||
zone->rcvquerystats = NULL;
|
||||
zone->dnssecsignstats = NULL;
|
||||
zone->notifydelay = 5;
|
||||
zone->isself = NULL;
|
||||
zone->isselfarg = NULL;
|
||||
ISC_LIST_INIT(zone->signing);
|
||||
ISC_LIST_INIT(zone->nsec3chain);
|
||||
ISC_LIST_INIT(zone->setnsec3param_queue);
|
||||
zone->signatures = 10;
|
||||
zone->nodes = 100;
|
||||
zone->privatetype = (dns_rdatatype_t)0xffffU;
|
||||
zone->added = false;
|
||||
zone->automatic = false;
|
||||
zone->rpzs = NULL;
|
||||
zone->rpz_num = DNS_RPZ_INVALID_NUM;
|
||||
|
||||
zone->catzs = NULL;
|
||||
zone->parentcatz = NULL;
|
||||
|
||||
ISC_LIST_INIT(zone->forwards);
|
||||
zone->raw = NULL;
|
||||
zone->secure = NULL;
|
||||
zone->sourceserial = 0;
|
||||
zone->sourceserialset = false;
|
||||
zone->requestixfr = true;
|
||||
zone->ixfr_ratio = 100;
|
||||
zone->requestexpire = true;
|
||||
ISC_LIST_INIT(zone->rss_events);
|
||||
ISC_LIST_INIT(zone->rss_post);
|
||||
zone->rss_db = NULL;
|
||||
zone->rss_raw = NULL;
|
||||
zone->rss_newver = NULL;
|
||||
zone->rss_oldver = NULL;
|
||||
zone->rss_event = NULL;
|
||||
zone->rss_state = NULL;
|
||||
zone->updatemethod = dns_updatemethod_increment;
|
||||
zone->maxrecords = 0U;
|
||||
|
||||
zone->magic = ZONE_MAGIC;
|
||||
|
||||
zone->gluecachestats = NULL;
|
||||
result = isc_stats_create(mctx, &zone->gluecachestats,
|
||||
dns_gluecachestatscounter_max);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
|
Reference in New Issue
Block a user