[CFR] Fix sockstat's handling of closed connections
Andre Oppermann
andre at freebsd.org
Wed Aug 25 09:21:27 PDT 2004
Peter Pentchev wrote:
>
> On Wed, Aug 25, 2004 at 05:48:38PM +0200, Andre Oppermann wrote:
> > Peter Pentchev wrote:
> [snip]
> > > Luckily, the fix is simple, or at least so it seems to me. It turns out
> > > that those connections have a xt_socket->xso_so set to NULL, and the
> > > false positive comes from sockstat's matching them to a similarly NULL
> > > xf_data members of 'kern.files'. What do people think about the
> > > following patch? I could commit it if nobody has any objections, but
> > > being a ports/doc committer, I would need an explicit approval to do
> > > that :)
> >
> > The fix looks good to me. It seems small enough so I think I can give
> > you the direct go-ahead to commit it. Could you also put a comment into
> > the sockstat man page describing that TCP connections in TIME_WAIT state
> > can be looked up with netstat?
>
> Thanks! I could easily fix the manpage, too, but is TIME_WAIT the only
> state when xt_socket->xso_so is null? Someone with better knowledge of
> the TCP/IP stack than me needs to either confirm that, or point out
> which of the CLOSED, CLOSE_WAIT, FIN_WAIT_1, CLOSING, and FIN_WAIT_2
> states also have a null xso_so - or is it just TIME_WAIT, because all
> the others still mean that the socket is still somewhat active?
Good question. Maybe it's easier to phrase it the other way around.
"TCP sockets not in LISTEN, SYN_SENT or ESTABLISHED state can be looked
up with netstat." These are the ones that certainly have a file descriptor
associated with them and thus show up in sockstat.
--
Andre
More information about the freebsd-net
mailing list