diff options
author | jesper <jesper@FreeBSD.org> | 2001-03-28 14:13:19 +0000 |
---|---|---|
committer | jesper <jesper@FreeBSD.org> | 2001-03-28 14:13:19 +0000 |
commit | 3c2e206a4140198a1411caaddb8cec7d88df9ea5 (patch) | |
tree | abb91ce7e944746c52515c8a1ca827c7a19ba087 /sys/netinet/tcp_timewait.c | |
parent | de858d3f3800ce4b503f38487fb57684daf65447 (diff) | |
download | FreeBSD-src-3c2e206a4140198a1411caaddb8cec7d88df9ea5.zip FreeBSD-src-3c2e206a4140198a1411caaddb8cec7d88df9ea5.tar.gz |
MFC candidate.
Change code from PRC_UNREACH_ADMIN_PROHIB to PRC_UNREACH_PORT for
ICMP_UNREACH_PROTOCOL and ICMP_UNREACH_PORT
And let TCP treat PRC_UNREACH_PORT like PRC_UNREACH_ADMIN_PROHIB
This should fix the case where port unreachables for udp returned
ENETRESET instead of ECONNREFUSED
Problem found by: Bill Fenner <fenner@research.att.com>
Reviewed by: jlemon
Diffstat (limited to 'sys/netinet/tcp_timewait.c')
-rw-r--r-- | sys/netinet/tcp_timewait.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/netinet/tcp_timewait.c b/sys/netinet/tcp_timewait.c index 8f339e4..2afff53 100644 --- a/sys/netinet/tcp_timewait.c +++ b/sys/netinet/tcp_timewait.c @@ -987,7 +987,8 @@ tcp_ctlinput(cmd, sa, vip) if (cmd == PRC_QUENCH) notify = tcp_quench; - else if (icmp_may_rst && cmd == PRC_UNREACH_ADMIN_PROHIB && ip) + else if (icmp_may_rst && (cmd == PRC_UNREACH_ADMIN_PROHIB || + cmd == PRC_UNREACH_PORT) && ip) notify = tcp_drop_syn_sent; else if (cmd == PRC_MSGSIZE) notify = tcp_mtudisc; |