Lines Matching refs:iter

68 zdb_zone_label_iterator_init(zdb_zone_label_iterator* iter, const zdb_zone* zone)  in zdb_zone_label_iterator_init()  argument
71 memset(iter, 0xff, sizeof(zdb_zone_label_iterator)); in zdb_zone_label_iterator_init()
78 top = dnsname_to_dnslabel_stack(zone->origin, iter->dnslabels); in zdb_zone_label_iterator_init()
84 dictionary_empty_iterator_init(&iter->stack[i]); in zdb_zone_label_iterator_init()
87 dictionary_iterator_init(&zone->apex->sub, &iter->stack[top]); in zdb_zone_label_iterator_init()
89 iter->top = top; in zdb_zone_label_iterator_init()
90 iter->current_label = zone->apex; in zdb_zone_label_iterator_init()
91 iter->zone = zone; in zdb_zone_label_iterator_init()
93 iter->prev_top = -1; // prev_top is used to skip children of the current label in zdb_zone_label_iterator_init()
95 iter->current_top = top; in zdb_zone_label_iterator_init()
99 dictionary_iterator_init(&zone->apex->sub, &iter->stack[0]); in zdb_zone_label_iterator_init()
100 iter->dnslabels[0] = zone->apex->name; in zdb_zone_label_iterator_init()
101 iter->top = 0; in zdb_zone_label_iterator_init()
102 iter->current_label = zone->apex; in zdb_zone_label_iterator_init()
103 iter->zone = zone; in zdb_zone_label_iterator_init()
105 iter->prev_top = -1; // prev_top is used to skip children of the current label in zdb_zone_label_iterator_init()
107 iter->current_top = 0; in zdb_zone_label_iterator_init()
112 zdb_zone_label_iterator_init_from(zdb_zone_label_iterator* iter, const zdb_zone* zone, const u8 *fr… in zdb_zone_label_iterator_init_from() argument
115 memset(iter, 0xff, sizeof(zdb_zone_label_iterator)); in zdb_zone_label_iterator_init_from()
122 zdb_zone_label_iterator_init(iter, zone); in zdb_zone_label_iterator_init_from()
126 s32 top = dnsname_to_dnslabel_stack(zone->origin, iter->dnslabels); in zdb_zone_label_iterator_init_from()
131 zdb_zone_label_iterator_init(iter, zone); in zdb_zone_label_iterator_init_from()
137 if(!dnslabel_equals(iter->dnslabels[i], from_name_stack[i])) in zdb_zone_label_iterator_init_from()
139 zdb_zone_label_iterator_init(iter, zone); in zdb_zone_label_iterator_init_from()
148 dictionary_empty_iterator_init(&iter->stack[i]); in zdb_zone_label_iterator_init_from()
169 iter->dnslabels[top + 1] = child->name; in zdb_zone_label_iterator_init_from()
174 dictionary_iterator_init_from(&parent->sub, &iter->stack[top], child->name); in zdb_zone_label_iterator_init_from()
179 dictionary_iterator_init(&parent->sub, &iter->stack[top]); in zdb_zone_label_iterator_init_from()
181 iter->top = top; in zdb_zone_label_iterator_init_from()
182 iter->current_label = parent; in zdb_zone_label_iterator_init_from()
183 iter->zone = zone; in zdb_zone_label_iterator_init_from()
185 iter->prev_top = top - 1; // prev_top is used to skip children of the current label in zdb_zone_label_iterator_init_from()
187 iter->current_top = top; in zdb_zone_label_iterator_init_from()
202 zdb_zone_label_iterator_hasnext(zdb_zone_label_iterator* iter) in zdb_zone_label_iterator_hasnext() argument
204 return iter->current_label != NULL; in zdb_zone_label_iterator_hasnext()
220 zdb_zone_label_iterator_nextname_to_cstr(zdb_zone_label_iterator* iter, char* buffer256) in zdb_zone_label_iterator_nextname_to_cstr() argument
222 u32 ret = dnslabel_stack_to_cstr(iter->dnslabels, iter->top, buffer256); in zdb_zone_label_iterator_nextname_to_cstr()
225 zdb_rr_label *label = iter->current_label; in zdb_zone_label_iterator_nextname_to_cstr()
228 …log_debug1("zli: %{dnsname}+%{dnslabel} nextname=%s (%u)", iter->zone->origin, label->name, buffer… in zdb_zone_label_iterator_nextname_to_cstr()
232 log_debug1("zli: %{dnsname}%NULL nextname=%s (%u)", iter->zone->origin, buffer256, ret); in zdb_zone_label_iterator_nextname_to_cstr()
245 zdb_zone_label_iterator_nextname(zdb_zone_label_iterator* iter, u8* buffer256) in zdb_zone_label_iterator_nextname() argument
247 u32 ret = dnslabel_stack_to_dnsname(iter->dnslabels, iter->top, buffer256); in zdb_zone_label_iterator_nextname()
249 if(*iter->zone->origin == 0) in zdb_zone_label_iterator_nextname()
255 zdb_rr_label *label = iter->current_label; in zdb_zone_label_iterator_nextname()
258 …log_debug1("zli: %{dnsname}+%{dnslabel} nextname=%{dnsname} (%u)", iter->zone->origin, label->name… in zdb_zone_label_iterator_nextname()
262 … log_debug1("zli: %{dnsname}%NULL nextname=%{dnsname} (%u)", iter->zone->origin, buffer256, ret); in zdb_zone_label_iterator_nextname()
286 zdb_zone_label_iterator_next(zdb_zone_label_iterator* iter) in zdb_zone_label_iterator_next() argument
288 zdb_rr_label* ret = iter->current_label; in zdb_zone_label_iterator_next()
290 iter->prev_top = iter->current_top; in zdb_zone_label_iterator_next()
293 iter->current_label = NULL; in zdb_zone_label_iterator_next()
295 while(iter->top >= 0) in zdb_zone_label_iterator_next()
297 if(dictionary_iterator_hasnext(&iter->stack[iter->top])) in zdb_zone_label_iterator_next()
299iter->current_label = *(zdb_rr_label**)dictionary_iterator_next(&iter->stack[iter->top]); in zdb_zone_label_iterator_next()
300 iter->current_top = iter->top + 1; in zdb_zone_label_iterator_next()
302 dictionary_iterator_init(&iter->current_label->sub, &iter->stack[++iter->top]); in zdb_zone_label_iterator_next()
303 iter->dnslabels[iter->top] = iter->current_label->name; in zdb_zone_label_iterator_next()
309 iter->dnslabels[iter->top] = (u8*)(intptr)0xfefefefefefefefeLL; in zdb_zone_label_iterator_next()
310 memset(&iter->stack[iter->top], 0xfe, sizeof(iter->stack[iter->top])); in zdb_zone_label_iterator_next()
313 iter->top--; in zdb_zone_label_iterator_next()
331 zdb_zone_label_skip_children(zdb_zone_label_iterator* iter) in zdb_zone_label_skip_children() argument
337 if(iter->prev_top >= iter->current_top) in zdb_zone_label_skip_children()
342 iter->current_label = NULL; in zdb_zone_label_skip_children()
344 iter->top = iter->current_top - 2; in zdb_zone_label_skip_children()
346 while(iter->top >= 0) in zdb_zone_label_skip_children()
348 if(dictionary_iterator_hasnext(&iter->stack[iter->top])) in zdb_zone_label_skip_children()
350iter->current_label = *(zdb_rr_label**)dictionary_iterator_next(&iter->stack[iter->top]); in zdb_zone_label_skip_children()
351 iter->current_top = iter->top + 1; in zdb_zone_label_skip_children()
353 dictionary_iterator_init(&iter->current_label->sub, &iter->stack[++iter->top]); in zdb_zone_label_skip_children()
354 iter->dnslabels[iter->top] = iter->current_label->name; in zdb_zone_label_skip_children()
359 iter->top--; in zdb_zone_label_skip_children()