Lines Matching defs:nsec3chain

348 	dns_nsec3chainlist_t	nsec3chain;
1040 ISC_LIST_INIT(zone->nsec3chain);
1106 dns_nsec3chain_t *nsec3chain;
1148 for (nsec3chain = ISC_LIST_HEAD(zone->nsec3chain);
1149 nsec3chain != NULL;
1150 nsec3chain = ISC_LIST_HEAD(zone->nsec3chain)) {
1151 ISC_LIST_UNLINK(zone->nsec3chain, nsec3chain, link);
1152 dns_db_detach(&nsec3chain->db);
1153 dns_dbiterator_destroy(&nsec3chain->dbiterator);
1154 isc_mem_put(zone->mctx, nsec3chain, sizeof *nsec3chain);
3320 dns_nsec3chain_t *nsec3chain, *current;
3359 nsec3chain = isc_mem_get(zone->mctx, sizeof *nsec3chain);
3360 if (nsec3chain == NULL) {
3365 nsec3chain->magic = 0;
3366 nsec3chain->done = ISC_FALSE;
3367 nsec3chain->db = NULL;
3368 nsec3chain->dbiterator = NULL;
3369 nsec3chain->nsec3param.common.rdclass = nsec3param->common.rdclass;
3370 nsec3chain->nsec3param.common.rdtype = nsec3param->common.rdtype;
3371 nsec3chain->nsec3param.hash = nsec3param->hash;
3372 nsec3chain->nsec3param.iterations = nsec3param->iterations;
3373 nsec3chain->nsec3param.flags = nsec3param->flags;
3374 nsec3chain->nsec3param.salt_length = nsec3param->salt_length;
3375 memmove(nsec3chain->salt, nsec3param->salt, nsec3param->salt_length);
3376 nsec3chain->nsec3param.salt = nsec3chain->salt;
3377 nsec3chain->seen_nsec = ISC_FALSE;
3378 nsec3chain->delete_nsec = ISC_FALSE;
3379 nsec3chain->save_delete_nsec = ISC_FALSE;
3428 for (current = ISC_LIST_HEAD(zone->nsec3chain);
3445 dns_db_attach(db, &nsec3chain->db);
3446 if ((nsec3chain->nsec3param.flags & DNS_NSEC3FLAG_CREATE) != 0)
3448 result = dns_db_createiterator(nsec3chain->db, options,
3449 &nsec3chain->dbiterator);
3451 result = dns_dbiterator_first(nsec3chain->dbiterator);
3457 * "nsec3chain" list for the zone and set the appropriate zone
3461 dns_dbiterator_pause(nsec3chain->dbiterator);
3462 ISC_LIST_INITANDAPPEND(zone->nsec3chain,
3463 nsec3chain, link);
3464 nsec3chain = NULL;
3473 if (nsec3chain != NULL) {
3474 if (nsec3chain->db != NULL)
3475 dns_db_detach(&nsec3chain->db);
3476 if (nsec3chain->dbiterator != NULL)
3477 dns_dbiterator_destroy(&nsec3chain->dbiterator);
3478 isc_mem_put(zone->mctx, nsec3chain, sizeof *nsec3chain);
7066 * Delete all NSEC3PARAM records which match that in nsec3chain.
7103 * Delete all private records which match that in nsec3chain.
7149 * Add a NSEC3PARAM record which matches that in nsec3chain but
7384 dns_nsec3chain_t *nsec3chain = NULL, *nextnsec3chain;
7486 nsec3chain = ISC_LIST_HEAD(zone->nsec3chain);
7490 if (nsec3chain != NULL)
7491 nsec3chain->save_delete_nsec = nsec3chain->delete_nsec;
7514 while (nsec3chain != NULL && nodes-- > 0 && signatures > 0) {
7516 nextnsec3chain = ISC_LIST_NEXT(nsec3chain, link);
7519 if (nsec3chain->done || nsec3chain->db != zone->db) {
7520 ISC_LIST_UNLINK(zone->nsec3chain, nsec3chain, link);
7521 ISC_LIST_APPEND(cleanup, nsec3chain, link);
7525 if (ISC_LIST_TAIL(cleanup) == nsec3chain)
7531 if (nsec3chain->db != db) {
7535 if (NSEC3REMOVE(nsec3chain->nsec3param.flags))
7538 dns_dbiterator_current(nsec3chain->dbiterator, &node, name);
7540 if (nsec3chain->delete_nsec) {
7542 dns_dbiterator_pause(nsec3chain->dbiterator);
7607 nsec3chain->seen_nsec = ISC_TRUE;
7616 dns_dbiterator_pause(nsec3chain->dbiterator);
7618 &nsec3chain->nsec3param,
7645 result = dns_dbiterator_next(nsec3chain->dbiterator);
7647 if (result == ISC_R_NOMORE && nsec3chain->delete_nsec) {
7648 dns_dbiterator_pause(nsec3chain->dbiterator);
7649 CHECK(fixup_nsec3param(db, version, nsec3chain,
7653 ISC_LIST_UNLINK(zone->nsec3chain, nsec3chain,
7656 ISC_LIST_APPEND(cleanup, nsec3chain, link);
7660 dns_dbiterator_pause(nsec3chain->dbiterator);
7661 if (nsec3chain->seen_nsec) {
7663 nsec3chain,
7667 nsec3chain->delete_nsec = ISC_TRUE;
7670 CHECK(fixup_nsec3param(db, version, nsec3chain,
7674 ISC_LIST_UNLINK(zone->nsec3chain, nsec3chain,
7677 ISC_LIST_APPEND(cleanup, nsec3chain, link);
7686 dns_dbiterator_current(nsec3chain->dbiterator,
7697 CHECK(dns_dbiterator_first(nsec3chain->dbiterator));
7702 dns_dbiterator_pause(nsec3chain->dbiterator);
7703 nsec3chain = nextnsec3chain;
7705 if (nsec3chain != NULL)
7706 nsec3chain->save_delete_nsec = nsec3chain->delete_nsec;
7709 if (nsec3chain != NULL)
7726 nsec3chain = ISC_LIST_HEAD(zone->nsec3chain);
7730 while (nsec3chain != NULL && nodes-- > 0 && signatures > 0) {
7732 nextnsec3chain = ISC_LIST_NEXT(nsec3chain, link);
7735 if (nsec3chain->db != db)
7738 if (!NSEC3REMOVE(nsec3chain->nsec3param.flags))
7746 (nsec3chain->nsec3param.flags & DNS_NSEC3FLAG_NONSEC) == 0)
7749 &nsec3chain->nsec3param,
7764 dns_dbiterator_current(nsec3chain->dbiterator, &node, name);
7773 nsec3chain,
7789 &nsec3chain->nsec3param,
7863 dns_dbiterator_pause(nsec3chain->dbiterator);
7873 result = dns_dbiterator_next(nsec3chain->dbiterator);
7884 ISC_LIST_UNLINK(zone->nsec3chain, nsec3chain,
7887 ISC_LIST_APPEND(cleanup, nsec3chain, link);
7888 dns_dbiterator_pause(nsec3chain->dbiterator);
7890 nsec3chain, ISC_FALSE,
7908 dns_dbiterator_current(nsec3chain->dbiterator,
7919 CHECK(dns_dbiterator_first(nsec3chain->dbiterator));
7925 dns_dbiterator_pause(nsec3chain->dbiterator);
7926 nsec3chain = nextnsec3chain;
7960 if (nsec3chain != NULL)
7961 dns_dbiterator_pause(nsec3chain->dbiterator);
7976 if (nsec3chain != NULL)
7977 dns_dbiterator_pause(nsec3chain->dbiterator);
7996 if (nsec3chain != NULL)
7997 dns_dbiterator_pause(nsec3chain->dbiterator);
8091 for (nsec3chain = ISC_LIST_HEAD(zone->nsec3chain);
8092 nsec3chain != NULL;
8093 nsec3chain = ISC_LIST_NEXT(nsec3chain, link))
8094 dns_dbiterator_pause(nsec3chain->dbiterator);
8106 nsec3chain = ISC_LIST_HEAD(cleanup);
8107 while (nsec3chain != NULL) {
8108 ISC_LIST_UNLINK(cleanup, nsec3chain, link);
8109 dns_db_detach(&nsec3chain->db);
8110 dns_dbiterator_destroy(&nsec3chain->dbiterator);
8111 isc_mem_put(zone->mctx, nsec3chain, sizeof *nsec3chain);
8112 nsec3chain = ISC_LIST_HEAD(cleanup);
8122 * On error roll back the current nsec3chain.
8124 if (result != ISC_R_SUCCESS && nsec3chain != NULL) {
8125 if (nsec3chain->done) {
8126 dns_db_detach(&nsec3chain->db);
8127 dns_dbiterator_destroy(&nsec3chain->dbiterator);
8128 isc_mem_put(zone->mctx, nsec3chain, sizeof *nsec3chain);
8130 result = dns_dbiterator_first(nsec3chain->dbiterator);
8132 dns_dbiterator_pause(nsec3chain->dbiterator);
8133 nsec3chain->delete_nsec = nsec3chain->save_delete_nsec;
8140 nsec3chain = ISC_LIST_TAIL(cleanup);
8141 while (nsec3chain != NULL) {
8142 ISC_LIST_UNLINK(cleanup, nsec3chain, link);
8143 if (nsec3chain->done) {
8144 dns_db_detach(&nsec3chain->db);
8145 dns_dbiterator_destroy(&nsec3chain->dbiterator);
8146 isc_mem_put(zone->mctx, nsec3chain, sizeof *nsec3chain);
8149 ISC_LIST_PREPEND(zone->nsec3chain, nsec3chain, link);
8151 result = dns_dbiterator_first(nsec3chain->dbiterator);
8153 dns_dbiterator_pause(nsec3chain->dbiterator);
8154 nsec3chain->delete_nsec = nsec3chain->save_delete_nsec;
8156 nsec3chain = ISC_LIST_TAIL(cleanup);
8160 for (nsec3chain = ISC_LIST_HEAD(zone->nsec3chain);
8161 nsec3chain != NULL;
8162 nsec3chain = ISC_LIST_NEXT(nsec3chain, link))
8163 dns_dbiterator_pause(nsec3chain->dbiterator);
8186 if (ISC_LIST_HEAD(zone->nsec3chain) != NULL) {