diff options
author | Jun-ichiro itojun Hagino <itojun@cvs.openbsd.org> | 2000-12-21 00:54:12 +0000 |
---|---|---|
committer | Jun-ichiro itojun Hagino <itojun@cvs.openbsd.org> | 2000-12-21 00:54:12 +0000 |
commit | c6c21d948b96291429c8fb37d7cd607011eea395 (patch) | |
tree | fac787cda958f00325b6746c37e64524975704b4 | |
parent | b67d6f1b9e9094ee6f60d7627dd51b3245970fa8 (diff) |
correct ipv6 path mtu discovery.
-rw-r--r-- | sys/netinet/tcp_subr.c | 4 | ||||
-rw-r--r-- | sys/netinet6/in6_pcb.c | 12 |
2 files changed, 10 insertions, 6 deletions
diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index 9ab06da405c..3309968706e 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tcp_subr.c,v 1.37 2000/12/13 09:47:08 provos Exp $ */ +/* $OpenBSD: tcp_subr.c,v 1.38 2000/12/21 00:54:10 itojun Exp $ */ /* $NetBSD: tcp_subr.c,v 1.22 1996/02/13 23:44:00 christos Exp $ */ /* @@ -976,7 +976,7 @@ tcp6_mtudisc_callback(faddr) sin6.sin6_len = sizeof(struct sockaddr_in6); sin6.sin6_addr = *faddr; (void) in6_pcbnotify(&tcbtable, (struct sockaddr *)&sin6, 0, - &zeroin6_addr, 0, EMSGSIZE, tcp_mtudisc); + &zeroin6_addr, 0, PRC_MSGSIZE, tcp_mtudisc); } #endif /* INET6 */ diff --git a/sys/netinet6/in6_pcb.c b/sys/netinet6/in6_pcb.c index eeecdc6ea72..9fcdff824f8 100644 --- a/sys/netinet6/in6_pcb.c +++ b/sys/netinet6/in6_pcb.c @@ -1,4 +1,4 @@ -/* $OpenBSD: in6_pcb.c,v 1.20 2000/10/11 09:14:14 itojun Exp $ */ +/* $OpenBSD: in6_pcb.c,v 1.21 2000/12/21 00:54:11 itojun Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -587,11 +587,15 @@ in6_pcbnotify(head, dst, fport_arg, la, lport_arg, cmd, notify) * * XXX: we assume in_rtchange does not free the PCB. */ - if (IN6_ARE_ADDR_EQUAL(&inp->inp_route6.ro_dst.sin6_addr, faddr)) + if (IN6_ARE_ADDR_EQUAL(&inp->inp_route6.ro_dst.sin6_addr, + faddr)) { in_rtchange(inp, errno); - if (notify == in_rtchange) - continue; /* there's nothing to do any more */ + if (notify == in_rtchange) { + /* there's nothing to do any more */ + continue; + } + } } if (!IN6_ARE_ADDR_EQUAL(&inp->inp_faddr6, faddr) || |