Lines Matching defs:sctx
125 ns_lwsearchctx_init(ns_lwsearchctx_t *sctx, ns_lwsearchlist_t *list,
128 INSIST(sctx != NULL);
129 sctx->relname = name;
130 sctx->searchname = NULL;
131 sctx->doneexact = ISC_FALSE;
132 sctx->exactfirst = ISC_FALSE;
133 sctx->ndots = ndots;
135 sctx->list = NULL;
138 sctx->list = list;
139 sctx->searchname = ISC_LIST_HEAD(sctx->list->names);
141 sctx->exactfirst = ISC_TRUE;
145 ns_lwsearchctx_first(ns_lwsearchctx_t *sctx) {
146 REQUIRE(sctx != NULL);
147 UNUSED(sctx);
151 ns_lwsearchctx_next(ns_lwsearchctx_t *sctx) {
152 REQUIRE(sctx != NULL);
154 if (sctx->list == NULL)
157 if (sctx->searchname == NULL) {
158 if (sctx->exactfirst || sctx->doneexact)
160 sctx->doneexact = ISC_TRUE;
162 if (sctx->exactfirst && !sctx->doneexact)
163 sctx->doneexact = ISC_TRUE;
165 sctx->searchname = ISC_LIST_NEXT(sctx->searchname,
167 if (sctx->searchname == NULL && sctx->doneexact)
176 ns_lwsearchctx_current(ns_lwsearchctx_t *sctx, dns_name_t *absname) {
180 REQUIRE(sctx != NULL);
182 if (sctx->list == NULL ||
183 sctx->searchname == NULL ||
184 (sctx->exactfirst && !sctx->doneexact))
188 if (dns_name_isabsolute(sctx->relname))
193 tname = sctx->searchname;
195 return (dns_name_concatenate(sctx->relname, tname, absname, NULL));