Lines Matching defs:nsec3chain
427 dns_nsec3chainlist_t nsec3chain;
1197 .nsec3chain = ISC_LIST_INITIALIZER,
1258 dns_nsec3chain_t *nsec3chain = NULL;
1295 for (nsec3chain = ISC_LIST_HEAD(zone->nsec3chain); nsec3chain != NULL;
1296 nsec3chain = ISC_LIST_HEAD(zone->nsec3chain))
1298 ISC_LIST_UNLINK(zone->nsec3chain, nsec3chain, link);
1299 dns_db_detach(&nsec3chain->db);
1300 dns_dbiterator_destroy(&nsec3chain->dbiterator);
1301 isc_mem_put(zone->mctx, nsec3chain, sizeof *nsec3chain);
3586 dns_nsec3chain_t *nsec3chain, *current;
3626 nsec3chain = isc_mem_get(zone->mctx, sizeof *nsec3chain);
3628 nsec3chain->magic = 0;
3629 nsec3chain->done = false;
3630 nsec3chain->db = NULL;
3631 nsec3chain->dbiterator = NULL;
3632 nsec3chain->nsec3param.common.rdclass = nsec3param->common.rdclass;
3633 nsec3chain->nsec3param.common.rdtype = nsec3param->common.rdtype;
3634 nsec3chain->nsec3param.hash = nsec3param->hash;
3635 nsec3chain->nsec3param.iterations = nsec3param->iterations;
3636 nsec3chain->nsec3param.flags = nsec3param->flags;
3637 nsec3chain->nsec3param.salt_length = nsec3param->salt_length;
3638 memmove(nsec3chain->salt, nsec3param->salt, nsec3param->salt_length);
3639 nsec3chain->nsec3param.salt = nsec3chain->salt;
3640 nsec3chain->seen_nsec = false;
3641 nsec3chain->delete_nsec = false;
3642 nsec3chain->save_delete_nsec = false;
3694 for (current = ISC_LIST_HEAD(zone->nsec3chain); current != NULL;
3715 dns_db_attach(db, &nsec3chain->db);
3716 if ((nsec3chain->nsec3param.flags & DNS_NSEC3FLAG_CREATE) != 0) {
3719 result = dns_db_createiterator(nsec3chain->db, options,
3720 &nsec3chain->dbiterator);
3722 result = dns_dbiterator_first(nsec3chain->dbiterator);
3729 * "nsec3chain" list for the zone and set the appropriate zone
3733 dns_dbiterator_pause(nsec3chain->dbiterator);
3734 ISC_LIST_INITANDAPPEND(zone->nsec3chain, nsec3chain, link);
3735 nsec3chain = NULL;
3745 if (nsec3chain != NULL) {
3746 if (nsec3chain->db != NULL) {
3747 dns_db_detach(&nsec3chain->db);
3749 if (nsec3chain->dbiterator != NULL) {
3750 dns_dbiterator_destroy(&nsec3chain->dbiterator);
3752 isc_mem_put(zone->mctx, nsec3chain, sizeof *nsec3chain);
7895 * Delete all NSEC3PARAM records which match that in nsec3chain.
7972 * Delete all private records which match that in nsec3chain.
8024 * Add a NSEC3PARAM record which matches that in nsec3chain but
8307 dns_nsec3chain_t *nsec3chain = NULL, *nextnsec3chain;
8394 nsec3chain = ISC_LIST_HEAD(zone->nsec3chain);
8398 if (nsec3chain != NULL) {
8399 nsec3chain->save_delete_nsec = nsec3chain->delete_nsec;
8423 while (nsec3chain != NULL && nodes-- > 0 && signatures > 0) {
8424 dns_dbiterator_pause(nsec3chain->dbiterator);
8427 nextnsec3chain = ISC_LIST_NEXT(nsec3chain, link);
8430 if (nsec3chain->done || nsec3chain->db != zone->db) {
8431 ISC_LIST_UNLINK(zone->nsec3chain, nsec3chain, link);
8432 ISC_LIST_APPEND(cleanup, nsec3chain, link);
8436 if (ISC_LIST_TAIL(cleanup) == nsec3chain) {
8443 if (nsec3chain->db != db) {
8447 if (NSEC3REMOVE(nsec3chain->nsec3param.flags)) {
8451 dns_dbiterator_current(nsec3chain->dbiterator, &node, name);
8453 if (nsec3chain->delete_nsec) {
8455 dns_dbiterator_pause(nsec3chain->dbiterator);
8524 nsec3chain->seen_nsec = true;
8536 dns_dbiterator_pause(nsec3chain->dbiterator);
8538 db, version, name, &nsec3chain->nsec3param,
8565 result = dns_dbiterator_next(nsec3chain->dbiterator);
8567 if (result == ISC_R_NOMORE && nsec3chain->delete_nsec) {
8568 dns_dbiterator_pause(nsec3chain->dbiterator);
8569 CHECK(fixup_nsec3param(db, version, nsec3chain,
8573 ISC_LIST_UNLINK(zone->nsec3chain, nsec3chain,
8576 ISC_LIST_APPEND(cleanup, nsec3chain, link);
8580 dns_dbiterator_pause(nsec3chain->dbiterator);
8581 if (nsec3chain->seen_nsec) {
8583 db, version, nsec3chain, true,
8585 nsec3chain->delete_nsec = true;
8588 CHECK(fixup_nsec3param(db, version, nsec3chain,
8592 ISC_LIST_UNLINK(zone->nsec3chain, nsec3chain,
8595 ISC_LIST_APPEND(cleanup, nsec3chain, link);
8604 dns_dbiterator_current(nsec3chain->dbiterator,
8617 CHECK(dns_dbiterator_first(nsec3chain->dbiterator));
8622 dns_dbiterator_pause(nsec3chain->dbiterator);
8623 nsec3chain = nextnsec3chain;
8625 if (nsec3chain != NULL) {
8626 nsec3chain->save_delete_nsec = nsec3chain->delete_nsec;
8630 if (nsec3chain != NULL) {
8648 nsec3chain = ISC_LIST_HEAD(zone->nsec3chain);
8652 while (nsec3chain != NULL && nodes-- > 0 && signatures > 0) {
8653 dns_dbiterator_pause(nsec3chain->dbiterator);
8656 nextnsec3chain = ISC_LIST_NEXT(nsec3chain, link);
8659 if (nsec3chain->db != db) {
8663 if (!NSEC3REMOVE(nsec3chain->nsec3param.flags)) {
8672 (nsec3chain->nsec3param.flags & DNS_NSEC3FLAG_NONSEC) == 0)
8675 &nsec3chain->nsec3param,
8692 dns_dbiterator_current(nsec3chain->dbiterator, &node, name);
8693 dns_dbiterator_pause(nsec3chain->dbiterator);
8702 db, version, nsec3chain, true,
8717 &nsec3chain->nsec3param,
8798 dns_dbiterator_pause(nsec3chain->dbiterator);
8809 result = dns_dbiterator_next(nsec3chain->dbiterator);
8819 dns_dbiterator_pause(nsec3chain->dbiterator);
8821 ISC_LIST_UNLINK(zone->nsec3chain, nsec3chain,
8824 ISC_LIST_APPEND(cleanup, nsec3chain, link);
8826 db, version, nsec3chain, false,
8843 dns_dbiterator_current(nsec3chain->dbiterator,
8856 CHECK(dns_dbiterator_first(nsec3chain->dbiterator));
8862 dns_dbiterator_pause(nsec3chain->dbiterator);
8863 nsec3chain = nextnsec3chain;
8899 if (nsec3chain != NULL) {
8900 dns_dbiterator_pause(nsec3chain->dbiterator);
8915 if (nsec3chain != NULL) {
8916 dns_dbiterator_pause(nsec3chain->dbiterator);
8935 if (nsec3chain != NULL) {
8936 dns_dbiterator_pause(nsec3chain->dbiterator);
9036 for (nsec3chain = ISC_LIST_HEAD(zone->nsec3chain); nsec3chain != NULL;
9037 nsec3chain = ISC_LIST_NEXT(nsec3chain, link))
9039 dns_dbiterator_pause(nsec3chain->dbiterator);
9052 nsec3chain = ISC_LIST_HEAD(cleanup);
9053 while (nsec3chain != NULL) {
9054 ISC_LIST_UNLINK(cleanup, nsec3chain, link);
9055 dns_db_detach(&nsec3chain->db);
9056 dns_dbiterator_destroy(&nsec3chain->dbiterator);
9057 isc_mem_put(zone->mctx, nsec3chain, sizeof *nsec3chain);
9058 nsec3chain = ISC_LIST_HEAD(cleanup);
9072 * On error roll back the current nsec3chain.
9074 if (result != ISC_R_SUCCESS && nsec3chain != NULL) {
9075 if (nsec3chain->done) {
9076 dns_db_detach(&nsec3chain->db);
9077 dns_dbiterator_destroy(&nsec3chain->dbiterator);
9078 isc_mem_put(zone->mctx, nsec3chain, sizeof *nsec3chain);
9080 result = dns_dbiterator_first(nsec3chain->dbiterator);
9082 dns_dbiterator_pause(nsec3chain->dbiterator);
9083 nsec3chain->delete_nsec = nsec3chain->save_delete_nsec;
9090 nsec3chain = ISC_LIST_TAIL(cleanup);
9091 while (nsec3chain != NULL) {
9092 ISC_LIST_UNLINK(cleanup, nsec3chain, link);
9093 if (nsec3chain->done) {
9094 dns_db_detach(&nsec3chain->db);
9095 dns_dbiterator_destroy(&nsec3chain->dbiterator);
9096 isc_mem_put(zone->mctx, nsec3chain, sizeof *nsec3chain);
9099 ISC_LIST_PREPEND(zone->nsec3chain, nsec3chain, link);
9101 result = dns_dbiterator_first(nsec3chain->dbiterator);
9103 dns_dbiterator_pause(nsec3chain->dbiterator);
9104 nsec3chain->delete_nsec = nsec3chain->save_delete_nsec;
9106 nsec3chain = ISC_LIST_TAIL(cleanup);
9110 for (nsec3chain = ISC_LIST_HEAD(zone->nsec3chain); nsec3chain != NULL;
9111 nsec3chain = ISC_LIST_NEXT(nsec3chain, link))
9113 dns_dbiterator_pause(nsec3chain->dbiterator);
9141 if (ISC_LIST_HEAD(zone->nsec3chain) != NULL) {