summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Krause <david@cvs.openbsd.org>2009-01-09 04:41:03 +0000
committerDavid Krause <david@cvs.openbsd.org>2009-01-09 04:41:03 +0000
commitad17c2f6b18a6a88b72b1c98178defc52f8d5aed (patch)
tree89b895d328821c092ee7372a70bae48529531eb2
parent23b9936e640a33f58960b87de6b9a1e073e30023 (diff)
fix egress group matching for IPv6; ok claudio@
-rw-r--r--sys/net/if.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/net/if.c b/sys/net/if.c
index ddb4c5bb1ce..ca0a8d2388a 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if.c,v 1.185 2008/12/12 22:07:33 claudio Exp $ */
+/* $OpenBSD: if.c,v 1.186 2009/01/09 04:41:02 david Exp $ */
/* $NetBSD: if.c,v 1.35 1996/05/07 05:26:04 thorpej Exp $ */
/*
@@ -1921,9 +1921,9 @@ if_group_routechange(struct sockaddr *dst, struct sockaddr *mask)
#ifdef INET6
case AF_INET6:
if (IN6_ARE_ADDR_EQUAL(&(satosin6(dst))->sin6_addr,
- &in6addr_any) && mask &&
+ &in6addr_any) && mask && (mask->sa_len == 0 ||
IN6_ARE_ADDR_EQUAL(&(satosin6(mask))->sin6_addr,
- &in6addr_any))
+ &in6addr_any)))
if_group_egress_build();
break;
#endif