summaryrefslogtreecommitdiff
path: root/sys/netinet/in_pcb.c
diff options
context:
space:
mode:
authorJun-ichiro itojun Hagino <itojun@cvs.openbsd.org>2000-04-21 11:42:26 +0000
committerJun-ichiro itojun Hagino <itojun@cvs.openbsd.org>2000-04-21 11:42:26 +0000
commitf3b3a991bbd7e54d2e2f1b8c8bbf4eb4d4d22e28 (patch)
tree9cd9ddf51b5e31172531e07eb9427f871302640c /sys/netinet/in_pcb.c
parent9227ad96340933986c01969e44e9485098e11efa (diff)
NRL pcb issue; inp_{f,l}addr{,6} is a union so we need to be sure about
af match. - do not touch IPv4 pcb entries on in6_pcbnotify. - do not touch IPv6 pcb entries on in_pcbnotify.
Diffstat (limited to 'sys/netinet/in_pcb.c')
-rw-r--r--sys/netinet/in_pcb.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c
index d6e89ff201c..99b6654fb2a 100644
--- a/sys/netinet/in_pcb.c
+++ b/sys/netinet/in_pcb.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: in_pcb.c,v 1.40 2000/01/04 10:39:21 itojun Exp $ */
+/* $OpenBSD: in_pcb.c,v 1.41 2000/04/21 11:42:23 itojun Exp $ */
/* $NetBSD: in_pcb.c,v 1.25 1996/02/13 23:41:53 christos Exp $ */
/*
@@ -647,6 +647,10 @@ in_pcbnotify(table, dst, fport_arg, laddr, lport_arg, errno, notify)
for (inp = table->inpt_queue.cqh_first;
inp != (struct inpcb *)&table->inpt_queue;) {
+#ifdef INET6
+ if (inp->inp_flags & INP_IPV6)
+ continue;
+#endif
if (inp->inp_faddr.s_addr != faddr.s_addr ||
inp->inp_socket == 0 ||
inp->inp_fport != fport ||
@@ -688,6 +692,10 @@ in_pcbnotifyall(table, dst, errno, notify)
for (inp = table->inpt_queue.cqh_first;
inp != (struct inpcb *)&table->inpt_queue;) {
+#ifdef INET6
+ if (inp->inp_flags & INP_IPV6)
+ continue;
+#endif
if (inp->inp_faddr.s_addr != faddr.s_addr ||
inp->inp_socket == 0) {
inp = inp->inp_queue.cqe_next;