Don't skip point-to-point interfaces if the netmask==0 (the netmask

should be completely ignored for point-to-point interfaces).
For point-to-point interfaces, route based on the destination address,
not the local address.

Submitted by:	Peter Wemm
This commit is contained in:
dg 1995-06-28 05:31:03 +00:00
parent 2bc3a773d6
commit b8d2a7b022

View File

@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)if.c 8.3 (Berkeley) 1/4/94
* $Id: if.c,v 1.15 1995/05/30 08:07:58 rgrimes Exp $
* $Id: if.c,v 1.16 1995/06/15 00:19:56 davidg Exp $
*/
#include <sys/param.h>
@ -237,12 +237,14 @@ ifa_ifwithnet(addr)
for (ifa = ifp->if_addrlist; ifa; ifa = ifa->ifa_next) {
register char *cp, *cp2, *cp3;
if (ifa->ifa_addr->sa_family != af || ifa->ifa_netmask == 0)
if (ifa->ifa_addr->sa_family != af)
next: continue;
if (ifp->if_flags & IFF_POINTOPOINT) {
if (equal(addr, ifa->ifa_addr))
if (equal(addr, ifa->ifa_dstaddr))
return (ifa);
} else {
if (ifa->ifa_netmask == 0)
continue;
cp = addr_data;
cp2 = ifa->ifa_addr->sa_data;
cp3 = ifa->ifa_netmask->sa_data;