Date: Thu, 28 Sep 2006 18:02:46 +0000 (UTC) From: Andre Oppermann <andre@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/netinet tcp_output.c Message-ID: <200609281802.k8SI2k9X027575@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
andre 2006-09-28 18:02:46 UTC FreeBSD src repository Modified files: sys/netinet tcp_output.c Log: When tcp_output() receives an error upon sending a packet it reverts parts of its internal state to ignore the failed send and try again a bit later. If the error is EPERM the packet got blocked by the local firewall and the revert may cause the session to get stuck and retry indefinitely. This way we treat it like a packet loss and let the retransmit timer and timeouts do their work over time. The correct behavior is to drop a connection that gets an EPERM error. However this _may_ introduce some POLA problems and a two commit approach was chosen. Discussed with: glebius PR: kern/25986 PR: kern/102653 Revision Changes Path 1.120 +15 -2 src/sys/netinet/tcp_output.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200609281802.k8SI2k9X027575>