version 1.72, 2007/07/09 21:11:12 |
version 1.73, 2007/08/10 22:43:26 |
|
|
in6_get_hw_ifid(struct ifnet *ifp, struct in6_addr *in6) |
in6_get_hw_ifid(struct ifnet *ifp, struct in6_addr *in6) |
{ |
{ |
struct ifaddr *ifa; |
struct ifaddr *ifa; |
struct sockaddr_dl *sdl; |
const struct sockaddr_dl *sdl; |
char *addr; |
const char *addr; |
size_t addrlen; |
size_t addrlen; |
static u_int8_t allzero[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; |
static u_int8_t allzero[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; |
static u_int8_t allone[8] = |
static u_int8_t allone[8] = |
Line 334 in6_get_hw_ifid(struct ifnet *ifp, struc |
|
Line 334 in6_get_hw_ifid(struct ifnet *ifp, struc |
|
TAILQ_FOREACH(ifa, &ifp->if_addrlist, ifa_list) { |
TAILQ_FOREACH(ifa, &ifp->if_addrlist, ifa_list) { |
if (ifa->ifa_addr->sa_family != AF_LINK) |
if (ifa->ifa_addr->sa_family != AF_LINK) |
continue; |
continue; |
sdl = (struct sockaddr_dl *)ifa->ifa_addr; |
sdl = satocsdl(ifa->ifa_addr); |
if (sdl == NULL) |
if (sdl == NULL) |
continue; |
continue; |
if (sdl->sdl_alen == 0) |
if (sdl->sdl_alen == 0) |
Line 346 in6_get_hw_ifid(struct ifnet *ifp, struc |
|
Line 346 in6_get_hw_ifid(struct ifnet *ifp, struc |
|
return -1; |
return -1; |
|
|
found: |
found: |
addr = LLADDR(sdl); |
addr = CLLADDR(sdl); |
addrlen = sdl->sdl_alen; |
addrlen = sdl->sdl_alen; |
|
|
switch (ifp->if_type) { |
switch (ifp->if_type) { |