diff options
author | Gerrit Renker <gerrit@erg.abdn.ac.uk> | 2007-11-28 14:34:53 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 23:55:12 +0100 |
commit | f11135a3442996d78dad99933bfdb90d1f6588d3 (patch) | |
tree | 6b10cea26f0551b769097296b7e41f25d6b44f08 /net/dccp/input.c | |
parent | [DCCP]: Use AF-independent rebuild_header routine (diff) | |
download | linux-f11135a3442996d78dad99933bfdb90d1f6588d3.tar.xz linux-f11135a3442996d78dad99933bfdb90d1f6588d3.zip |
[DCCP]: Dedicated auxiliary states to support passive-close
This adds two auxiliary states to deal with passive closes:
* PASSIVE_CLOSE (reached from OPEN via reception of Close) and
* PASSIVE_CLOSEREQ (reached from OPEN via reception of CloseReq)
as internal intermediate states.
These states are used to allow a receiver to process unread data before
acknowledging the received connection-termination-request (the Close/CloseReq).
Without such support, it will happen that passively-closed sockets enter CLOSED
state while there is still unprocessed data in the queue; leading to unexpected
and erratic API behaviour.
PASSIVE_CLOSE has been mapped into TCPF_CLOSE_WAIT, so that the code will
seamlessly work with inet_accept() (which tests for this state).
The state names are thanks to Arnaldo, who suggested this naming scheme
following an earlier revision of this patch.
Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dccp/input.c')
0 files changed, 0 insertions, 0 deletions