linux/net/dccp
Gerrit Renker f11135a344 [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>
2008-01-28 14:55:12 -08:00
..
ccids [TFRC]: Migrate TX history to singly-linked lis 2008-01-28 14:55:11 -08:00
Kconfig [DCCP]: Promote CCID2 as default CCID 2008-01-28 14:54:46 -08:00
Makefile
ackvec.c [ACKVEC]: Reduce length of identifiers 2008-01-28 14:54:51 -08:00
ackvec.h [ACKVEC]: Reduce length of identifiers 2008-01-28 14:54:51 -08:00
ccid.c [DCCP]: fix theoretical ccids_{read,write}_lock() race 2007-08-13 22:52:09 -07:00
ccid.h [DCCP] ccid: Deprecate ccid_hc_tx_insert_options 2006-12-11 14:34:49 -08:00
dccp.h [DCCP]: Factor out common code for generating Resets 2007-10-10 16:52:44 -07:00
diag.c [INET]: Let inet_diag and friends autoload 2007-10-22 02:59:54 -07:00
feat.c [DCCP]: fix memory leak and clean up style - dccp_feat_empty_confirm() 2007-08-13 22:52:10 -07:00
feat.h [NET] DCCP: Fix whitespace errors. 2007-02-10 23:19:27 -08:00
input.c [NET]: Name magic constants in sock_wake_async() 2008-01-28 14:55:03 -08:00
ipv4.c [DCCP]: Use DEFINE_PROTO_INUSE infrastructure. 2007-11-07 04:09:01 -08:00
ipv6.c [DCCP]: Use DEFINE_PROTO_INUSE infrastructure. 2007-11-07 04:09:01 -08:00
ipv6.h
minisocks.c [DCCP]: Tidy-up -- minisock initialisation 2007-10-10 16:54:36 -07:00
options.c [DCCP]: Ignore Ack Vectors / Elapsed Time on DCCP-Request also 2008-01-28 14:54:47 -08:00
output.c [DCCP]: Use AF-independent rebuild_header routine 2008-01-28 14:55:12 -08:00
probe.c [NET]: Make /proc/net per network namespace 2007-10-10 16:49:06 -07:00
proto.c [DCCP]: Dedicated auxiliary states to support passive-close 2008-01-28 14:55:12 -08:00
sysctl.c [DCCP]: fix link error with !CONFIG_SYSCTL 2007-10-17 19:33:06 -07:00
timer.c [NET]: Convert init_timer into setup_timer 2008-01-28 14:53:35 -08:00