Re: [PATCH 3/10]: Dedicated auxiliary states to support passive-close

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Quoting Arnaldo Carvalho de Melo:
|  > [DCCP]: Dedicated auxiliary states to support passive-close
|  > 
|  > This adds two auxiliary states to deal with passive closes:
|  >   * PASSIVE_1 (reached from OPEN via reception of Close) and
|  >   * PASSIVE_2 (reached from OPEN via reception of CloseReq)
|  
|  
|  Perhaps we should rename PASSIVE_1 (magic number) to PASSIVE_CLOSEREQ
|  and PASSIVE_2 to PASSIVE_CLOSE, and also CLOSEREQ to ACTIVE_CLOSEREQ?
No problems with the first two. With the third I was initially thinking
`this name is from the RFC', but the RFC didn't help much here and your
scheme makes the state much clearer - so, yes, I agree fully with that.
 
|  I'll defer these patches till we get some more discussion. There are
|  many more unrelated patches to work on after all :)
What kind of discussion were you thinking of: in a previous thread Ian and I
reached some agreement already that there is a problem here.

The problem really is in taking the RFC 4340 state machine at face value: if this
is done literally, short-lived connections will wipe the receive queue before the
userland application had a chance to read data; as documented on
	http://www.erg.abdn.ac.uk/users/gerrit/dccp/notes/closing_states/
If you don't believe this, it can readily be tested by writing a small test app which 
sends something like `hello world' to the server.
All data is seen on the wire, but never by the application.

A test app can be found in the directory misc/hello_world of
http://www.erg.abdn.ac.uk/users/gerrit/dccp/apps/dccp_applications_lib.tar.gz
-
To unsubscribe from this list: send the line "unsubscribe dccp" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [IETF DCCP]     [Linux Networking]     [Git]     [Security]     [Linux Assembly]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux