Subject: Re: loopback routes
To: Andrew Brown <atatat@atatdot.net>
From: Charles M. Hannum <root@ihack.net>
List: tech-net
Date: 05/05/2000 22:51:34
This is due to some special cases for IFF_LOOPBACK. Could you try the
following change?
*** in.c.orig Fri May 5 22:41:32 2000
--- in.c Fri May 5 22:47:41 2000
***************
*** 790,796 ****
if ((ia->ia_flags & IFA_ROUTE) == 0)
return;
! if (ifp->if_flags & (IFF_LOOPBACK|IFF_POINTOPOINT))
rtinit(&(ia->ia_ifa), (int)RTM_DELETE, RTF_HOST);
else
rtinit(&(ia->ia_ifa), (int)RTM_DELETE, 0);
--- 790,796 ----
if ((ia->ia_flags & IFA_ROUTE) == 0)
return;
! if (ifp->if_flags & IFF_POINTOPOINT)
rtinit(&(ia->ia_ifa), (int)RTM_DELETE, RTF_HOST);
else
rtinit(&(ia->ia_ifa), (int)RTM_DELETE, 0);
***************
*** 867,875 ****
ia->ia_subnet | ~ia->ia_subnetmask;
ia->ia_netbroadcast.s_addr =
ia->ia_net | ~ia->ia_netmask;
- } else if (ifp->if_flags & IFF_LOOPBACK) {
- ia->ia_ifa.ifa_dstaddr = ia->ia_ifa.ifa_addr;
- flags |= RTF_HOST;
} else if (ifp->if_flags & IFF_POINTOPOINT) {
if (ia->ia_dstaddr.sin_family != AF_INET)
return (0);
--- 867,872 ----