222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
|
memcpy(&address.sockaddr.in, ¤t->ifr_addr,
sockaddrSize);
# if defined(OF_HAVE_IPV6) && defined(HAVE_IF_NAMETOINDEX)
if (address.sockaddr.in6.sin6_family == AF_INET6 &&
address.sockaddr.in6.sin6_addr.s6_addr[0] == 0xFE &&
(address.sockaddr.in6.sin6_addr.s6_addr[1] & 0xC0)
== 0x80)
address.sockaddr.in6.sin6_scope_id =
if_nametoindex(
[name cStringWithEncoding: encoding]);
# endif
[addresses addItem: &address];
next:
# ifdef _SIZEOF_ADDR_IFREQ
buffer += _SIZEOF_ADDR_IFREQ(*current);
|
|
>
>
>
>
>
>
|
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
|
memcpy(&address.sockaddr.in, ¤t->ifr_addr,
sockaddrSize);
# if defined(OF_HAVE_IPV6) && defined(HAVE_IF_NAMETOINDEX)
if (address.sockaddr.in6.sin6_family == AF_INET6 &&
address.sockaddr.in6.sin6_addr.s6_addr[0] == 0xFE &&
(address.sockaddr.in6.sin6_addr.s6_addr[1] & 0xC0)
== 0x80) {
# if defined(HAVE_INET6_GETSCOPEID)
inet6_getscopeid(&address.sockaddr.in6,
INET6_IS_ADDR_LINKLOCAL);
# elif defined(HAVE_IF_NAMETOINDEX)
address.sockaddr.in6.sin6_scope_id =
if_nametoindex(
[name cStringWithEncoding: encoding]);
# endif
}
# endif
[addresses addItem: &address];
next:
# ifdef _SIZEOF_ADDR_IFREQ
buffer += _SIZEOF_ADDR_IFREQ(*current);
|