mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-01 06:55:30 +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
|
isc_result_t
|
||||||
dns_zone_create(dns_zone_t **zonep, isc_mem_t *mctx) {
|
dns_zone_create(dns_zone_t **zonep, isc_mem_t *mctx) {
|
||||||
isc_result_t result;
|
isc_result_t result;
|
||||||
dns_zone_t *zone;
|
|
||||||
isc_time_t now;
|
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(zonep != NULL && *zonep == NULL);
|
||||||
REQUIRE(mctx != NULL);
|
REQUIRE(mctx != NULL);
|
||||||
|
|
||||||
TIME_NOW(&now);
|
TIME_NOW(&now);
|
||||||
zone = isc_mem_get(mctx, sizeof(*zone));
|
zone = isc_mem_get(mctx, sizeof(*zone));
|
||||||
|
*zone = z;
|
||||||
|
|
||||||
zone->mctx = NULL;
|
zone->mctx = NULL;
|
||||||
isc_mem_attach(mctx, &zone->mctx);
|
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
|
#ifdef DNS_ZONE_CHECKLOCK
|
||||||
zone->locked = false;
|
zone->locked = false;
|
||||||
#endif /* ifdef DNS_ZONE_CHECKLOCK */
|
#endif /* ifdef DNS_ZONE_CHECKLOCK */
|
||||||
zone->db = NULL;
|
|
||||||
zone->zmgr = NULL;
|
zone->notifytime = now;
|
||||||
|
|
||||||
ISC_LINK_INIT(zone, link);
|
ISC_LINK_INIT(zone, link);
|
||||||
isc_refcount_init(&zone->erefs, 1);
|
isc_refcount_init(&zone->erefs, 1);
|
||||||
isc_refcount_init(&zone->irefs, 0);
|
isc_refcount_init(&zone->irefs, 0);
|
||||||
dns_name_init(&zone->origin, NULL);
|
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->includes);
|
||||||
ISC_LIST_INIT(zone->newincludes);
|
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->flags, 0);
|
||||||
atomic_init(&zone->options, 0);
|
atomic_init(&zone->options, 0);
|
||||||
atomic_init(&zone->keyopts, 0);
|
atomic_init(&zone->keyopts, 0);
|
||||||
zone->db_argc = 0;
|
|
||||||
zone->db_argv = NULL;
|
|
||||||
isc_time_settoepoch(&zone->expiretime);
|
isc_time_settoepoch(&zone->expiretime);
|
||||||
isc_time_settoepoch(&zone->refreshtime);
|
isc_time_settoepoch(&zone->refreshtime);
|
||||||
isc_time_settoepoch(&zone->dumptime);
|
isc_time_settoepoch(&zone->dumptime);
|
||||||
isc_time_settoepoch(&zone->loadtime);
|
isc_time_settoepoch(&zone->loadtime);
|
||||||
zone->notifytime = now;
|
|
||||||
isc_time_settoepoch(&zone->resigntime);
|
isc_time_settoepoch(&zone->resigntime);
|
||||||
isc_time_settoepoch(&zone->keywarntime);
|
isc_time_settoepoch(&zone->keywarntime);
|
||||||
isc_time_settoepoch(&zone->signingtime);
|
isc_time_settoepoch(&zone->signingtime);
|
||||||
isc_time_settoepoch(&zone->nsec3chaintime);
|
isc_time_settoepoch(&zone->nsec3chaintime);
|
||||||
isc_time_settoepoch(&zone->refreshkeytime);
|
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_LIST_INIT(zone->notifies);
|
||||||
isc_sockaddr_any(&zone->notifysrc4);
|
isc_sockaddr_any(&zone->notifysrc4);
|
||||||
isc_sockaddr_any6(&zone->notifysrc6);
|
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_any6(&zone->xfrsource6);
|
||||||
isc_sockaddr_any(&zone->altxfrsource4);
|
isc_sockaddr_any(&zone->altxfrsource4);
|
||||||
isc_sockaddr_any6(&zone->altxfrsource6);
|
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);
|
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->signing);
|
||||||
ISC_LIST_INIT(zone->nsec3chain);
|
ISC_LIST_INIT(zone->nsec3chain);
|
||||||
ISC_LIST_INIT(zone->setnsec3param_queue);
|
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);
|
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_events);
|
||||||
ISC_LIST_INIT(zone->rss_post);
|
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,
|
result = isc_stats_create(mctx, &zone->gluecachestats,
|
||||||
dns_gluecachestatscounter_max);
|
dns_gluecachestatscounter_max);
|
||||||
if (result != ISC_R_SUCCESS) {
|
if (result != ISC_R_SUCCESS) {
|
||||||
|
Reference in New Issue
Block a user