summaryrefslogtreecommitdiffstats
path: root/sys/netinet/in_var.h
diff options
context:
space:
mode:
authorswallace <swallace@FreeBSD.org>1994-10-25 22:13:32 +0000
committerswallace <swallace@FreeBSD.org>1994-10-25 22:13:32 +0000
commit84b8ad00c8339aeea8ebe7727cf87427f1e51785 (patch)
treee27a72af3ce375531d1ff2165b327dc7db7a3fe1 /sys/netinet/in_var.h
parent24c2aab3285c8eab2581e492596926e26b6d002e (diff)
downloadFreeBSD-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/in_var.h')
-rw-r--r--sys/netinet/in_var.h8
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; \
OpenPOWER on IntegriCloud