diff options
author | swallace <swallace@FreeBSD.org> | 1994-10-25 22:13:32 +0000 |
---|---|---|
committer | swallace <swallace@FreeBSD.org> | 1994-10-25 22:13:32 +0000 |
commit | 84b8ad00c8339aeea8ebe7727cf87427f1e51785 (patch) | |
tree | e27a72af3ce375531d1ff2165b327dc7db7a3fe1 /sys/netinet | |
parent | 24c2aab3285c8eab2581e492596926e26b6d002e (diff) | |
download | FreeBSD-src-84b8ad00c8339aeea8ebe7727cf87427f1e51785.zip FreeBSD-src-84b8ad00c8339aeea8ebe7727cf87427f1e51785.tar.gz |
Patch for proper multicast support on point-to-point links.
Submitted by: apg@demos.su (Paul Antonov) - patch020
Diffstat (limited to 'sys/netinet')
-rw-r--r-- | sys/netinet/in_var.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/netinet/in_var.h b/sys/netinet/in_var.h index 352e19a..ddf307c 100644 --- a/sys/netinet/in_var.h +++ b/sys/netinet/in_var.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)in_var.h 8.1 (Berkeley) 6/10/93 - * $Id: in_var.h,v 1.5 1994/08/21 05:27:30 paul Exp $ + * $Id: in_var.h,v 1.6 1994/09/06 22:42:20 wollman Exp $ */ #ifndef _NETINET_IN_VAR_H_ @@ -72,7 +72,8 @@ struct in_aliasreq { * Given a pointer to an in_ifaddr (ifaddr), * return a pointer to the addr as a sockaddr_in. */ -#define IA_SIN(ia) (&(((struct in_ifaddr *)(ia))->ia_addr)) +#define IA_SIN(ia) (&(((struct in_ifaddr *)(ia))->ia_addr)) +#define IA_DSTSIN(ia) (&(((struct in_ifaddr *)(ia))->ia_dstaddr)) #define IN_LNAOF(in, ifa) \ ((ntohl((in).s_addr) & ~((struct in_ifaddr *)(ifa)->ia_subnetmask)) @@ -93,7 +94,8 @@ extern struct ifqueue ipintrq; /* ip packet input queue */ register struct in_ifaddr *ia; \ \ for (ia = in_ifaddr; \ - ia != NULL && IA_SIN(ia)->sin_addr.s_addr != (addr).s_addr; \ + ia != NULL && ((ia->ia_ifp->if_flags & IFF_POINTOPOINT)? \ + IA_DSTSIN(ia):IA_SIN(ia))->sin_addr.s_addr != (addr).s_addr; \ ia = ia->ia_next) \ continue; \ (ifp) = (ia == NULL) ? NULL : ia->ia_ifp; \ |