History log of /freebsd-10.0-release/usr.bin/sockstat/sockstat.c
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 259065 07-Dec-2013 gjb

- Copy stable/10 (r259064) to releng/10.0 as part of the
10.0-RELEASE cycle.
- Update __FreeBSD_version [1]
- Set branch name to -RC1

[1] 10.0-CURRENT __FreeBSD_version value ended at '55', so
start releng/10.0 at '100' so the branch is started with
a value ending in zero.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


# 237674 27-Jun-2012 thompsa

Update the usage with the new jail option.

Spotted by: Jason Hellenthal
MFC after: 3 days


# 237263 19-Jun-2012 np

- Updated TOE support in the kernel.

- Stateful TCP offload drivers for Terminator 3 and 4 (T3 and T4) ASICs.
These are available as t3_tom and t4_tom modules that augment cxgb(4)
and cxgbe(4) respectively. The cxgb/cxgbe drivers continue to work as
usual with or without these extra features.

- iWARP driver for Terminator 3 ASIC (kernel verbs). T4 iWARP in the
works and will follow soon.

Build-tested with make universe.

30s overview
============
What interfaces support TCP offload? Look for TOE4 and/or TOE6 in the
capabilities of an interface:
# ifconfig -m | grep TOE

Enable/disable TCP offload on an interface (just like any other ifnet
capability):
# ifconfig cxgbe0 toe
# ifconfig cxgbe0 -toe

Which connections are offloaded? Look for toe4 and/or toe6 in the
output of netstat and sockstat:
# netstat -np tcp | grep toe
# sockstat -46c | grep toe

Reviewed by: bz, gnn
Sponsored by: Chelsio communications.
MFC after: ~3 months (after 9.1, and after ensuring MFC is feasible)


# 235870 23-May-2012 thompsa

Allow the socket list to be limited to a specific jail id.

No objections: current@


# 230874 01-Feb-2012 trociny

Try to avoid ambiguity when sysctl returns ENOMEM additionally
checking the returned oldlen: when ENOMEM is due to the supplied
buffer being too short the return oldlen is equal to buffer size.

Without this additional check sockstat gets stuck in loop leaking the
memory if the returned ENOMEM was due the exceeded memorylocked
limit. This is easily can be observed running `limits -l 1k sockstat'.

Submitted by: Andrey Zonov <andrey zonov org>
MFC after: 1 week


# 230512 24-Jan-2012 jilles

sockstat: Also show sockets not associated with a file descriptor.

Sockets not associated with a file descriptor include TCP TIME_WAIT states
and sockets created via the socket(9) API such as from rpc.lockd and the NFS
client.

PR: bin/164081
MFC after: 2 weeks
No objection: des


# 228991 30-Dec-2011 uqs

Reencode files from latin1 to UTF-8.

This makes a tiny percentage of entries in calendars ugly for latin1
users, but fixes them for UTF-8 users.

This badly needs a solution involving locale-dependent re-encoding.


# 205874 30-Mar-2010 maxim

o Make sockstat -6 output more readable for long ipv6
addresses (most of them apart from ::1): put a whitespace
between local and remote address:port pairs.

PR: bin/145194
Submitted by: Fedor Dikarev
MFC after: 2 weeks


# 201385 02-Jan-2010 ed

Mute some warnings on uninitialized variables.

The code does the right thing, but the compiler is unable to figure it
out. All paths that use that variable use the same invariant.


# 189637 10-Mar-2009 rwatson

Remove unused v6 macro aliases for inpcb fields:

in6p_ip6_nxt
in6p_vflag
in6p_flags
in6p_socket
in6p_lport
in6p_fport
in6p_ppcb

Remove unused v6 macro aliases for inpcb flags:

IN6P_HIGHPORT
IN6P_LOWPORT
IN6P_ANONPORT
IN6P_RECVIF
IN6P_MTUDISC
IN6P_FAITH
IN6P_CONTROLOPTS

References to in6p_lport and in6_fport in sockstat are also replaced with
normal inp_lport and inp_fport references.

MFC after: 3 days
Reviewed by: bz


# 187915 30-Jan-2009 des

Make sure the entries don't run into each other when they're longer than
the allotted space.

PR: bin/129318
Submitted by: Ighighi <ighighi@gmail.com>
MFC after: 3 weeks


# 179116 19-May-2008 bms

Add -L to usage().


# 179115 19-May-2008 bms

Add an -L option to ignore loopback Internet sockets.

MFC after: 2 weeks


# 170833 16-Jun-2007 maxim

o Do not warn if the process exits before we get its name.

PR: bin/113777
Submitted by: Dmitrij Tejblum
MFC after: 1 week


# 167810 22-Mar-2007 emaste

Use proc name (ki_comm) instead of thread name (ki_ocomm) as these may now
be different.


# 164226 12-Nov-2006 keramida

In revision 1.14 I broke the -4 and -6 options of sockstat(1).
Using either one of the two would result in an empty protos[]
array, and no sockets were actually listed:

% sockstat -4
USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
% sockstat -6
USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
%

Fix this bug by tweaking appropriately the logic of handling opt_4,
opt_6, opt_u and protos_defined.

Submitted by: des
Pointy hat: keramida


# 164201 11-Nov-2006 keramida

Add support for filtering sockets by protocol type. The default
behavior of sockstat(1) will still be to show "udp", "tcp" and
"divert" protocols, but we can now provide a (comma-separated)
list of protocols, as in:

% sockstat -P tcp

to list only TCP sockets, or we can filter more than one protocol
by separating the protocol names with a comma:

% sockstat -P tcp,udp

Protocol names are parsed with getprotobyname(3), so any protocol
whose name is listed in `/etc/protocols' should work fine.

Submitted by: Josh Carroll <josh.carroll@psualum.com>
Approved by: des


# 147227 10-Jun-2005 des

Don't free(sock) before it's even allocated.

Submitted by: Joerg Sonnenberger <joerg@britannica.bec.de>
MFC after: 1 week


# 138437 06-Dec-2004 ru

Unbreak sockstat(1) on systems without the divert protocol.


# 138391 05-Dec-2004 ru

Show divert(4) sockets as well.


# 134295 25-Aug-2004 roam

Do not display bogus entries for sockets in the TIME_WAIT or similar
states that no longer have a corresponding file descriptor - until now,
sockstat would mostly randomly match null kern.file.*.xf_data fields
with the first mostly-closed socket.

This bugfix is a RELENG_5 candidate.

Approved by: andre


# 117772 19-Jul-2003 jmg

make sockstat not print wierd addresses on not connected unix domain sockets

Pointed out by: rwatson
Reviewed by: peter


# 115955 07-Jun-2003 mux

Finish the implementation of the -p switch so that it
actually works. I have no idea why this wasn't finished
and happened to try to use it.


# 114853 09-May-2003 robert

To reserve space for 65536 bits, allocate
65536 / (sizeof(int) * CHAR_BITS) `int's instead of
65536 / (sizeof(int) * CHAR_BITS) bytes to avoid a possible
segmentation fault if ports above 16383 are specified via the
-p option on a platform with 4 byte wide ints.

Approved by: re (bmah)
Reported by: Marco Wertejuk <wertejuk@mwcis.com>


# 109153 12-Jan-2003 dillon

Bow to the whining masses and change a union back into void *. Retain
removal of unnecessary casts and throw in some minor cleanups to see if
anyone complains, just for the hell of it.


# 109123 11-Jan-2003 dillon

Change struct file f_data to un_data, a union of the correct struct
pointer types, and remove a huge number of casts from code using it.

Change struct xfile xf_data to xun_data (ABI is still compatible).

If we need to add a #define for f_data and xf_data we can, but I don't
think it will be necessary. There are no operational changes in this
commit.


# 101220 02-Aug-2002 robert

Use a cast to `void *' before casting to a pointer to a structure
to stop GCC emitting warnings about increased alignment requirements
which broke the build for sparc64.

Approved by: des


# 101163 01-Aug-2002 des

Don't depend on namespace pollution from <netinet/in_pcb.h>.

Submitted by: bde


# 101144 01-Aug-2002 des

Implement the -l and -c options, which I'd forgotten.


# 101043 31-Jul-2002 des

Rewrite sockstat(1) in C.

Sponsored by: DARPA, NAI Labs