Bug 747 - Listening TCP socket closes on RST
Listening TCP socket closes on RST
Status: RESOLVED FIXED
Product: ns-3
Classification: Unclassified
Component: internet
ns-3-dev
All All
: P2 normal
Assigned To: Josh Pelkey
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2009-11-23 05:07 EST by Fabian Mauchle
Modified: 2010-01-31 15:18 EST (History)
3 users (show)

See Also:


Attachments
patch (1.79 KB, patch)
2009-11-23 05:07 EST, Fabian Mauchle
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Fabian Mauchle 2009-11-23 05:07:25 EST
Created attachment 667 [details]
patch

A TCP socket in state 'Listening' changes to state 'Closed' when a (malicious) RST packet is received. The socket should stay in state 'Listening'.

Please review the patch very closely. All unit-tests pass, but i'm not sure whether they cover all situations.
Comment 1 Josh Pelkey 2009-11-26 11:24:26 EST
(In reply to comment #0)
> Created an attachment (id=667) [details]
> patch
> 
> A TCP socket in state 'Listening' changes to state 'Closed' when a (malicious)
> RST packet is received. The socket should stay in state 'Listening'.
> 
> Please review the patch very closely. All unit-tests pass, but i'm not sure
> whether they cover all situations.

I spent some time looking over this, and it looks good.  Essentially the patch ensures that the state machine is used upon RST events (rather than trying to do it within the methods). +1 from me.
Comment 2 Josh Pelkey 2010-01-31 15:18:28 EST
(In reply to comment #1)
> (In reply to comment #0)
> > Created an attachment (id=667) [details] [details]
> > patch
> > 
> > A TCP socket in state 'Listening' changes to state 'Closed' when a (malicious)
> > RST packet is received. The socket should stay in state 'Listening'.
> > 
> > Please review the patch very closely. All unit-tests pass, but i'm not sure
> > whether they cover all situations.
> 
> I spent some time looking over this, and it looks good.  Essentially the patch
> ensures that the state machine is used upon RST events (rather than trying to
> do it within the methods). +1 from me.

changeset 894221b51957