cvs commit: src/sys/netinet tcp_output.c
andre at FreeBSD.org
Thu Sep 28 11:02:47 PDT 2006
andre 2006-09-28 18:02:46 UTC
FreeBSD src repository
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
Discussed with: glebius
Revision Changes Path
1.120 +15 -2 src/sys/netinet/tcp_output.c
More information about the cvs-src