Home | History | Annotate | Download | only in dns

Lines Matching refs:knode

108 	dns_keynode_t *knode = *keynodep;
111 if (isc_refcount_decrement(&knode->refcount) == 1) {
113 isc_refcount_destroy(&knode->refcount);
114 isc_rwlock_destroy(&knode->rwlock);
115 if (knode->dslist != NULL) {
116 for (rdata = ISC_LIST_HEAD(knode->dslist->rdata);
118 rdata = ISC_LIST_HEAD(knode->dslist->rdata))
120 ISC_LIST_UNLINK(knode->dslist->rdata, rdata,
127 isc_mem_put(mctx, knode->dslist,
128 sizeof(*knode->dslist));
129 knode->dslist = NULL;
131 isc_mem_putanddetach(&knode->mctx, knode,
206 add_ds(dns_keynode_t *knode, dns_rdata_ds_t *ds, isc_mem_t *mctx) {
223 RWLOCK(&knode->rwlock, isc_rwlocktype_write);
225 if (knode->dslist == NULL) {
226 knode->dslist = isc_mem_get(mctx, sizeof(*knode->dslist));
227 dns_rdatalist_init(knode->dslist);
228 knode->dslist->rdclass = dns_rdataclass_in;
229 knode->dslist->type = dns_rdatatype_ds;
231 INSIST(knode->dsset.methods == NULL);
232 knode->dsset.methods = &methods;
233 knode->dsset.rdclass = knode->dslist->rdclass;
234 knode->dsset.type = knode->dslist->type;
235 knode->dsset.covers = knode->dslist->covers;
236 knode->dsset.ttl = knode->dslist->ttl;
237 knode->dsset.private1 = knode;
238 knode->dsset.private2 = NULL;
239 knode->dsset.private3 = NULL;
240 knode->dsset.privateuint4 = 0;
241 knode->dsset.private5 = NULL;
242 knode->dsset.trust = dns_trust_ultimate;
245 for (rdata = ISC_LIST_HEAD(knode->dslist->rdata); rdata != NULL;
258 ISC_LIST_APPEND(knode->dslist->rdata, dsrdata, link);
261 RWUNLOCK(&knode->rwlock, isc_rwlocktype_write);
266 dns_keynode_t *knode = node->data;
274 RWLOCK(&knode->rwlock, isc_rwlocktype_read);
275 if (knode->dslist == NULL) {
276 RWUNLOCK(&knode->rwlock, isc_rwlocktype_read);
285 RWUNLOCK(&knode->rwlock, isc_rwlocktype_write);
289 for (rdata = ISC_LIST_HEAD(knode->dslist->rdata); rdata != NULL;
299 RWUNLOCK(&knode->rwlock, isc_rwlocktype_read);
308 * Replace knode with a new instance without the DS.
310 node->data = new_keynode(NULL, keytable, knode->managed,
311 knode->initial);
312 for (rdata = ISC_LIST_HEAD(knode->dslist->rdata); rdata != NULL;
322 RWUNLOCK(&knode->rwlock, isc_rwlocktype_read);
324 keynode_detach(keytable->mctx, &knode);
337 dns_keynode_t *knode = NULL;
342 knode = isc_mem_get(keytable->mctx, sizeof(dns_keynode_t));
343 *knode = (dns_keynode_t){ .magic = KEYNODE_MAGIC };
345 dns_rdataset_init(&knode->dsset);
346 isc_refcount_init(&knode->refcount, 1);
347 isc_rwlock_init(&knode->rwlock, 0, 0);
353 add_ds(knode, ds, keytable->mctx);
356 isc_mem_attach(keytable->mctx, &knode->mctx);
357 knode->managed = managed;
358 knode->initial = initial;
360 return (knode);
394 dns_keynode_t *knode = node->data;
395 if (knode == NULL) {
399 add_ds(knode, ds, keytable->mctx);
455 dns_keynode_t *knode = NULL;
480 knode = node->data;
482 RWLOCK(&knode->rwlock, isc_rwlocktype_read);
483 if (knode->dslist == NULL) {
484 RWUNLOCK(&knode->rwlock, isc_rwlocktype_read);
488 RWUNLOCK(&knode->rwlock, isc_rwlocktype_read);
699 dns_keynode_t *knode;
724 knode = node->data;
725 if (knode != NULL && knode->dslist != NULL) {
732 result = keynode_dslist_totext(fullname, knode, text);