Lines Matching refs:list

42 	ns_lwsearchlist_t *list;  in ns_lwsearchlist_create()  local
48 list = isc_mem_get(mctx, sizeof(ns_lwsearchlist_t)); in ns_lwsearchlist_create()
49 if (list == NULL) in ns_lwsearchlist_create()
52 result = isc_mutex_init(&list->lock); in ns_lwsearchlist_create()
54 isc_mem_put(mctx, list, sizeof(ns_lwsearchlist_t)); in ns_lwsearchlist_create()
57 list->mctx = NULL; in ns_lwsearchlist_create()
58 isc_mem_attach(mctx, &list->mctx); in ns_lwsearchlist_create()
59 list->refs = 1; in ns_lwsearchlist_create()
60 ISC_LIST_INIT(list->names); in ns_lwsearchlist_create()
61 list->magic = LWSEARCHLIST_MAGIC; in ns_lwsearchlist_create()
63 *listp = list; in ns_lwsearchlist_create()
83 ns_lwsearchlist_t *list; in ns_lwsearchlist_detach() local
87 list = *listp; in ns_lwsearchlist_detach()
88 REQUIRE(VALID_LWSEARCHLIST(list)); in ns_lwsearchlist_detach()
90 LOCK(&list->lock); in ns_lwsearchlist_detach()
91 INSIST(list->refs > 0); in ns_lwsearchlist_detach()
92 list->refs--; in ns_lwsearchlist_detach()
93 UNLOCK(&list->lock); in ns_lwsearchlist_detach()
96 if (list->refs != 0) in ns_lwsearchlist_detach()
99 mctx = list->mctx; in ns_lwsearchlist_detach()
100 while (!ISC_LIST_EMPTY(list->names)) { in ns_lwsearchlist_detach()
101 dns_name_t *name = ISC_LIST_HEAD(list->names); in ns_lwsearchlist_detach()
102 ISC_LIST_UNLINK(list->names, name, link); in ns_lwsearchlist_detach()
103 dns_name_free(name, list->mctx); in ns_lwsearchlist_detach()
104 isc_mem_put(list->mctx, name, sizeof(dns_name_t)); in ns_lwsearchlist_detach()
106 list->magic = 0; in ns_lwsearchlist_detach()
107 isc_mem_put(mctx, list, sizeof(ns_lwsearchlist_t)); in ns_lwsearchlist_detach()
112 ns_lwsearchlist_append(ns_lwsearchlist_t *list, dns_name_t *name) { in ns_lwsearchlist_append() argument
116 REQUIRE(VALID_LWSEARCHLIST(list)); in ns_lwsearchlist_append()
119 newname = isc_mem_get(list->mctx, sizeof(dns_name_t)); in ns_lwsearchlist_append()
123 result = dns_name_dup(name, list->mctx, newname); in ns_lwsearchlist_append()
125 isc_mem_put(list->mctx, newname, sizeof(dns_name_t)); in ns_lwsearchlist_append()
129 ISC_LIST_APPEND(list->names, newname, link); in ns_lwsearchlist_append()
134 ns_lwsearchctx_init(ns_lwsearchctx_t *sctx, ns_lwsearchlist_t *list, in ns_lwsearchctx_init() argument
143 if (dns_name_isabsolute(name) || list == NULL) { in ns_lwsearchctx_init()
144 sctx->list = NULL; in ns_lwsearchctx_init()
147 sctx->list = list; in ns_lwsearchctx_init()
148 sctx->searchname = ISC_LIST_HEAD(sctx->list->names); in ns_lwsearchctx_init()
163 if (sctx->list == NULL) in ns_lwsearchctx_next()
192 if (sctx->list == NULL || in ns_lwsearchctx_current()