Lines Matching defs:ntatable
59 dns_ntatable_t *ntatable;
121 dns_ntatable_t *ntatable = NULL;
125 ntatable = isc_mem_get(view->mctx, sizeof(*ntatable));
126 *ntatable = (dns_ntatable_t){
130 isc_mem_attach(view->mctx, &ntatable->mctx);
131 dns_view_weakattach(view, &ntatable->view);
133 isc_rwlock_init(&ntatable->rwlock);
134 dns_qpmulti_create(view->mctx, &qpmethods, view, &ntatable->table);
136 isc_refcount_init(&ntatable->references, 1);
138 ntatable->magic = NTATABLE_MAGIC;
139 *ntatablep = ntatable;
143 dns__ntatable_destroy(dns_ntatable_t *ntatable) {
144 ntatable->magic = 0;
145 isc_rwlock_destroy(&ntatable->rwlock);
146 dns_qpmulti_destroy(&ntatable->table);
147 INSIST(ntatable->view == NULL);
148 isc_mem_putanddetach(&ntatable->mctx, ntatable, sizeof(*ntatable));
162 dns_ntatable_t *ntatable = nta->ntatable;
163 dns_view_t *view = ntatable->view;
192 RWLOCK(&ntatable->rwlock, isc_rwlocktype_write);
196 RWUNLOCK(&ntatable->rwlock, isc_rwlocktype_write);
206 RWLOCK(&ntatable->rwlock, isc_rwlocktype_read);
210 RWUNLOCK(&ntatable->rwlock, isc_rwlocktype_read);
218 dns_ntatable_t *ntatable = nta->ntatable;
233 if (atomic_load(&ntatable->shuttingdown)) {
238 result = dns_view_getresolver(ntatable->view, &resolver);
255 settimer(dns_ntatable_t *ntatable, dns__nta_t *nta, uint32_t lifetime) {
259 REQUIRE(VALID_NTATABLE(ntatable));
262 view = ntatable->view;
273 nta_create(dns_ntatable_t *ntatable, const dns_name_t *name,
277 REQUIRE(VALID_NTATABLE(ntatable));
280 nta = isc_mem_get(ntatable->mctx, sizeof(dns__nta_t));
282 .ntatable = ntatable,
286 isc_mem_attach(ntatable->mctx, &nta->mctx);
300 dns_ntatable_add(dns_ntatable_t *ntatable, const dns_name_t *name, bool force,
307 REQUIRE(VALID_NTATABLE(ntatable));
309 if (atomic_load(&ntatable->shuttingdown)) {
313 RWLOCK(&ntatable->rwlock, isc_rwlocktype_write);
314 dns_qpmulti_write(ntatable->table, &qp);
315 nta_create(ntatable, name, &nta);
336 settimer(ntatable, nta, lifetime);
344 dns_qpmulti_commit(ntatable->table, &qp);
345 RWUNLOCK(&ntatable->rwlock, isc_rwlocktype_write);
351 dns_ntatable_delete(dns_ntatable_t *ntatable, const dns_name_t *name) {
356 REQUIRE(VALID_NTATABLE(ntatable));
359 dns_qpmulti_write(ntatable->table, &qp);
367 dns_qpmulti_commit(ntatable->table, &qp);
375 dns_ntatable_t *ntatable = nta->ntatable;
380 REQUIRE(VALID_NTATABLE(ntatable));
382 RWLOCK(&ntatable->rwlock, isc_rwlocktype_write);
383 dns_qpmulti_write(ntatable->table, &qp);
398 dns_qpmulti_commit(ntatable->table, &qp);
399 RWUNLOCK(&ntatable->rwlock, isc_rwlocktype_write);
401 dns_ntatable_detach(&ntatable);
405 dns_ntatable_covered(dns_ntatable_t *ntatable, isc_stdtime_t now,
413 REQUIRE(VALID_NTATABLE(ntatable));
416 RWLOCK(&ntatable->rwlock, isc_rwlocktype_read);
417 dns_qpmulti_query(ntatable->table, &qpr);
443 dns_ntatable_ref(nta->ntatable);
450 RWUNLOCK(&ntatable->rwlock, isc_rwlocktype_read);
451 dns_qpread_destroy(ntatable->table, &qpr);
469 dns_ntatable_totext(dns_ntatable_t *ntatable, const char *view,
478 REQUIRE(VALID_NTATABLE(ntatable));
480 RWLOCK(&ntatable->rwlock, isc_rwlocktype_read);
481 dns_qpmulti_query(ntatable->table, &qpr);
520 dns_qpread_destroy(ntatable->table, &qpr);
521 RWUNLOCK(&ntatable->rwlock, isc_rwlocktype_read);
526 dns_ntatable_save(dns_ntatable_t *ntatable, FILE *fp) {
534 REQUIRE(VALID_NTATABLE(ntatable));
536 RWLOCK(&ntatable->rwlock, isc_rwlocktype_read);
537 dns_qpmulti_query(ntatable->table, &qpr);
573 dns_qpread_destroy(ntatable->table, &qpr);
574 RWUNLOCK(&ntatable->rwlock, isc_rwlocktype_read);
614 dns_ntatable_shutdown(dns_ntatable_t *ntatable) {
619 REQUIRE(VALID_NTATABLE(ntatable));
621 RWLOCK(&ntatable->rwlock, isc_rwlocktype_write);
622 dns_qpmulti_query(ntatable->table, &qpr);
623 ntatable->shuttingdown = true;
632 dns_qpread_destroy(ntatable->table, &qpr);
633 dns_view_weakdetach(&ntatable->view);
634 RWUNLOCK(&ntatable->rwlock, isc_rwlocktype_write);