Quote:
Originally posted by druuna
True.
But am I incorrect by stating that the connection is no longer active and the 'closing negotiations' are sent. Killing a connection in FINWAIT2 state seems pointless (to me, that is ).
Well, yeah but that's because you do things correctly.
People write servers that connect to pc's. The pc's are powered off. Then someone wants to kill and restart the server. Because connections are in FINWAIT2, the bind fails.
To get into this state they had to:
1. bypass inetd so that one global bind() is not performed at startup.
2. connect to clients that fail to do a proper shutdown.
3. write goofy code so that the server needs to be restarted
4. forget to set SO_REUSEADDR which would instruct the kernel to ignore the FINWAIT2 connections during a bind()
Believe or not, this happens all the time. Go figure. Many OS's will now time out FINWAIT2 connections which is not good. Other OS's have a way to manually close a FINWAIT2 connection. This is what I think the OP wants.