Lines Matching refs:iter
145 linux_if_inet6_first(isc_interfaceiter_t *iter);
152 linux_if_inet6_first(isc_interfaceiter_t *iter) {
153 if (iter->proc != NULL) {
154 rewind(iter->proc);
155 (void)linux_if_inet6_next(iter);
157 iter->valid = ISC_R_NOMORE;
162 linux_if_inet6_next(isc_interfaceiter_t *iter) {
163 if (iter->proc != NULL &&
164 fgets(iter->entry, sizeof(iter->entry), iter->proc) != NULL)
166 iter->valid = ISC_R_SUCCESS;
168 iter->valid = ISC_R_NOMORE;
170 return (iter->valid);
174 linux_if_inet6_current(isc_interfaceiter_t *iter) {
182 if (iter->valid != ISC_R_SUCCESS) {
183 return (iter->valid);
185 if (iter->proc == NULL) {
188 "/proc/net/if_inet6:iter->proc == NULL");
192 res = sscanf(iter->entry, "%32[a-f0-9] %x %x %x %x %16s\n", address,
214 iter->current.af = AF_INET6;
215 iter->current.flags = INTERFACE_F_UP;
216 isc_netaddr_fromin6(&iter->current.address, &addr6);
217 if (isc_netaddr_islinklocal(&iter->current.address)) {
218 isc_netaddr_setzone(&iter->current.address, (uint32_t)ifindex);
229 isc_netaddr_fromin6(&iter->current.netmask, &addr6);
230 strlcpy(iter->current.name, name, sizeof(iter->current.name));
240 isc_interfaceiter_current(isc_interfaceiter_t *iter, isc_interface_t *ifdata) {
241 REQUIRE(iter->result == ISC_R_SUCCESS);
242 memmove(ifdata, &iter->current, sizeof(*ifdata));
247 isc_interfaceiter_first(isc_interfaceiter_t *iter) {
250 REQUIRE(VALID_IFITER(iter));
252 internal_first(iter);
254 result = internal_current(iter);
258 result = internal_next(iter);
263 iter->result = result;
268 isc_interfaceiter_next(isc_interfaceiter_t *iter) {
271 REQUIRE(VALID_IFITER(iter));
272 REQUIRE(iter->result == ISC_R_SUCCESS);
275 result = internal_next(iter);
279 result = internal_current(iter);
284 iter->result = result;
290 isc_interfaceiter_t *iter;
292 iter = *iterp;
294 REQUIRE(VALID_IFITER(iter));
296 internal_destroy(iter);
297 if (iter->buf != NULL) {
298 isc_mem_put(iter->mctx, iter->buf, iter->bufsize);
301 iter->magic = 0;
302 isc_mem_put(iter->mctx, iter, sizeof(*iter));