• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/bind9-45.101/bind9/lib/isc/unix/

Lines Matching refs:iter

55 	isc_interfaceiter_t *iter;
63 iter = isc_mem_get(mctx, sizeof(*iter));
64 if (iter == NULL)
67 iter->mctx = mctx;
68 iter->buf = NULL;
69 iter->bufsize = 0;
70 iter->ifaddrs = NULL;
77 iter->proc = fopen("/proc/net/if_inet6", "r");
79 iter->proc = NULL;
80 iter->valid = ISC_R_FAILURE;
83 if (getifaddrs(&iter->ifaddrs) < 0) {
100 iter->pos = NULL;
101 iter->result = ISC_R_FAILURE;
103 iter->magic = IFITER_MAGIC;
104 *iterp = iter;
109 if (iter->proc != NULL)
110 fclose(iter->proc);
112 if (iter->ifaddrs != NULL) /* just in case */
113 freeifaddrs(iter->ifaddrs);
114 isc_mem_put(mctx, iter, sizeof(*iter));
119 * Get information about the current interface to iter->current.
126 internal_current(isc_interfaceiter_t *iter) {
131 REQUIRE(VALID_IFITER(iter));
133 ifa = iter->pos;
136 if (iter->pos == NULL)
137 return (linux_if_inet6_current(iter));
155 memset(&iter->current, 0, sizeof(iter->current));
158 if (namelen > sizeof(iter->current.name) - 1)
159 namelen = sizeof(iter->current.name) - 1;
161 memset(iter->current.name, 0, sizeof(iter->current.name));
162 memcpy(iter->current.name, ifa->ifa_name, namelen);
164 iter->current.flags = 0;
167 iter->current.flags |= INTERFACE_F_UP;
170 iter->current.flags |= INTERFACE_F_POINTTOPOINT;
173 iter->current.flags |= INTERFACE_F_LOOPBACK;
175 iter->current.af = family;
177 get_addr(family, &iter->current.address, ifa->ifa_addr, ifa->ifa_name);
180 get_addr(family, &iter->current.netmask, ifa->ifa_netmask,
184 (iter->current.flags & INTERFACE_F_POINTTOPOINT) != 0)
185 get_addr(family, &iter->current.dstaddress, ifa->ifa_dstaddr,
199 internal_next(isc_interfaceiter_t *iter) {
201 if (iter->pos != NULL)
202 iter->pos = iter->pos->ifa_next;
203 if (iter->pos == NULL) {
206 return (linux_if_inet6_next(iter));
215 internal_destroy(isc_interfaceiter_t *iter) {
218 if (iter->proc != NULL)
219 fclose(iter->proc);
220 iter->proc = NULL;
222 if (iter->ifaddrs)
223 freeifaddrs(iter->ifaddrs);
224 iter->ifaddrs = NULL;
228 void internal_first(isc_interfaceiter_t *iter) {
231 linux_if_inet6_first(iter);
233 iter->pos = iter->ifaddrs;