plan9fox/sys/src
cinap_lenrek 8152e9d075 devip: tcp: Don't respond to FIN-less ACKs during TIME-WAIT (thanks Barret Rhoden)
Under the normal close sequence, when we receive a FIN|ACK, we enter
TIME-WAIT and respond to that LAST-ACK with an ACK.  Our TCP stack would
send an ACK in response to *any* ACK, which included FIN|ACK but also
included regular ACKs.  (Or PSH|ACKs, which is what we were actually
getting/sending).

That was more ACKs than is necessary and results in an endless ACK storm
if we were under the simultaneous close sequence.  In that scenario,
both sides of a connection are in TIME-WAIT.  Both sides receive
FIN|ACK, and both respond with an ACK.  Then both sides receive *those*
ACKs, and respond again.  This continues until the TIME-WAIT wait period
elapses and each side's TCP timers (in the Plan 9 / Akaros case) shut
down.

The fix for this is to only respond to a FIN|ACK when we are in TIME-WAIT.
2019-01-27 22:12:50 +01:00
..
9 devip: tcp: Don't respond to FIN-less ACKs during TIME-WAIT (thanks Barret Rhoden) 2019-01-27 22:12:50 +01:00
ape fix misleading/wrong fd checks 2018-10-20 18:44:09 +00:00
boot add /sys/src/boot/bcm/mkfile to download raspberry pi bootcode firmware 2018-10-22 00:15:39 +02:00
cmd ip/dhcpd: remove undocumented dhcpgroup mechanism, group related ndb attributes together 2019-01-24 20:29:39 +01:00
games games/md: fix mkfile 2018-11-20 09:22:04 +00:00
lib9p
libaml libaml: allow amlmapio() to re-enter the interpreter (can happen by pciadd() -> amleval()) 2018-11-04 19:48:27 +01:00
libauth
libauthsrv
libavl
libbin
libbio
libc libc: add procsetname() 2018-09-26 14:56:23 +02:00
libcomplete
libcontrol
libdisk libdisk: catch null bytes in proto file, fix memory leaks 2018-10-20 20:32:22 +02:00
libdraw libdraw: avoid deadlock for mouse ioproc sending on resizec 2018-11-18 03:37:04 +01:00
libdtracy dtracy: get rid of DTName struct, support more than three parts in a probe name, wildcard matching 2018-12-13 10:42:49 +00:00
libfis
libflate
libframe
libgeometry
libhtml libhtml: increase Nestmax to render some convoluted pages (thanks fernan) 2018-09-23 23:35:41 +02:00
libhttpd
libip libip: ignore ipv6 link local addresses for myipaddr() 2018-09-09 15:35:14 +02:00
libjson
liblex
libmach libmach: change amd64 szreg to 8 (thanks charles forsyth) 2018-11-24 22:38:00 +01:00
libmemdraw
libmemlayer
libmp libmp: fix mptouv behaviour to match mptoui 2018-12-06 09:32:20 +00:00
libndb libndb: add missing ndbdedup.c 2018-09-16 15:27:17 +02:00
libplumb
libregexp
libsat
libscribble
libsec libsec: fix memory leak in pkcs1_decrypt() 2018-12-02 03:23:48 +01:00
libstdio
libString
libsunrpc
libthread
libttf ttf: SHZ also uses 0x36 2018-10-16 19:26:40 +00:00
libventi
mkfile add dtracy to mkfile 2018-11-11 10:10:30 +00:00
mkfile.proto