|
Can anyone please tell me exactly what
the
function ipv6_chk_addr (in addrconf.c)
does?
Thank-you!
Bryan
----
int ipv6_chk_addr( struct int_addr *addr, sturct
net_device *dev)
{
struct inet6_ifaddr * ifp;
u8 hash = ipv6_addr_hash(addr);
read_lock_bh(&addrconf_has_lock);
for(ifp = inet6_addr_lst[hash]; ifp;
ifp=ifp->lst_next) {
if
(ipv6_addr_cmp(&ifp->addr, addr) ==0 &&
!(ifp->flgas&IFA_F_TENTATIVE)) {
if(dev==NULL || ifp->idev->dev==dev ||
!(ifp->scope&(IFA_LINK|IFA_HOST)))
break;
}
read_unlock_bh(&addrconf_hash_lock);
return ifp != NULL;
}
|