Commit Graph

60 Commits

Author SHA1 Message Date
trociny
d5f58367fb 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
2012-02-01 18:03:21 +00:00
jilles
a5b724067f 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
2012-01-24 21:33:34 +00:00
uqs
f4753a04d4 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.
2011-12-30 10:59:15 +00:00
maxim
09e7af977a 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
2010-03-30 09:58:21 +00:00
ed
9b380e30d4 Build usr.bin/ with WARNS=6 by default.
Also add some missing $FreeBSD$ to keep svn happy.
2010-01-02 10:27:05 +00:00
ed
14b790b0cf 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.
2010-01-02 10:14:35 +00:00
des
6b03d5e862 Note that sockstat(1) does not display kernel-owned sockets.
Submitted by:	infofarmer@
MFC after:	2 weeks
2009-12-21 17:23:04 +00:00
trasz
eabdd627e2 Add manual page links to advertise procstat(1) a little better.
Approved by:	re (kib)
2009-07-09 16:40:00 +00:00
rwatson
f0bf25503d 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
2009-03-10 17:57:41 +00:00
des
62cee65dbe 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
2009-01-30 14:28:50 +00:00
bms
17e674bd6f Add -L to usage(). 2008-05-19 11:35:11 +00:00
bms
1d1522666e Add an -L option to ignore loopback Internet sockets.
MFC after:	2 weeks
2008-05-19 11:32:44 +00:00
maxim
8ea5048f0d o Do not warn if the process exits before we get its name.
PR:		bin/113777
Submitted by:	Dmitrij Tejblum
MFC after:	1 week
2007-06-16 20:24:55 +00:00
emaste
77a22ac882 Use proc name (ki_comm) instead of thread name (ki_ocomm) as these may now
be different.
2007-03-22 17:47:58 +00:00
keramida
9c9a9d1af8 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
2006-11-12 19:03:39 +00:00
keramida
e996b3d302 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
2006-11-11 22:11:54 +00:00
des
d8145c4b62 Don't free(sock) before it's even allocated.
Submitted by:	Joerg Sonnenberger <joerg@britannica.bec.de>
MFC after:	1 week
2005-06-10 06:36:03 +00:00
ru
e68efdc747 Let bsd.prog.mk set SRCS and MAN to their default values. 2005-01-28 16:08:11 +00:00
ru
169f1013f0 Scheduled mdoc(7) sweep. 2005-01-11 10:32:52 +00:00
ru
96a90ac8d7 Unbreak sockstat(1) on systems without the divert protocol. 2004-12-06 09:28:05 +00:00
ru
0d2cefc65d Show divert(4) sockets as well. 2004-12-05 14:17:14 +00:00
roam
47b3e1d304 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
2004-08-25 16:36:17 +00:00
jmg
3210986215 make sockstat not print wierd addresses on not connected unix domain sockets
Pointed out by:	rwatson
Reviewed by:	peter
2003-07-19 06:23:56 +00:00
mux
df4d18c70c 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.
2003-06-07 14:36:49 +00:00
robert
83107b499f 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>
2003-05-09 09:11:27 +00:00
dillon
ccd5574cc6 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.
2003-01-13 00:33:17 +00:00
dillon
ddf9ef103e 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.
2003-01-12 01:37:13 +00:00
ru
b67068895d mdoc(7) police: markup polishing.
Approved by:	re
2002-11-26 17:33:37 +00:00
robert
1495d7e56f 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
2002-08-02 11:57:59 +00:00
des
1d14d5adc9 Don't depend on namespace pollution from <netinet/in_pcb.h>.
Submitted by:	bde
2002-08-01 16:49:31 +00:00
des
7884f69d0c Implement the -l and -c options, which I'd forgotten. 2002-08-01 11:02:30 +00:00
des
06dac20202 Rewrite sockstat(1) in C.
Sponsored by:	DARPA, NAI Labs
2002-07-31 12:32:03 +00:00
des
4d6b787d2d Usage style sweep: spell "usage" with a small 'u'.
Also change one case of blatant __progname abuse (several more remain)
This commit does not touch anything in src/{contrib,crypto,gnu}/.
2002-04-22 13:44:47 +00:00
des
1c6c608da6 Drop maintainership of this, it serves no purpose. 2002-04-15 19:36:50 +00:00
ru
e8e5635e4a Spell "FreeBSD" with "F" and "BSD" in uppercase. 2001-08-13 16:33:00 +00:00
ru
6b03fce48e mdoc(7) police: fix markup. 2001-08-10 10:43:45 +00:00
des
26d4324d74 Allow the user to specify port ranges against which to match inet sockets.
Suggested by:	roam
2001-08-07 19:59:52 +00:00
mjacob
e095d37b91 Fix 64 bit issues so that sockstat && fstat work correctly on alpha.
PR:		29231
Submitted by:	pherman@frenchfries.net
MFC after:	2 weeks
2001-07-25 20:31:20 +00:00
ru
36f138439b mdoc(7) police: removed HISTORY info from the .Os call. 2001-07-10 14:16:33 +00:00
ru
ef2dbc1fb0 beforeinstall -> SCRIPTS. 2001-04-07 11:21:35 +00:00
ru
89596e4538 MAN[1-9] -> MAN. 2001-03-27 10:52:19 +00:00
des
3bd182ef54 Use the newly introduced -W flag to netstat(1) to avoid truncated addresses. 2001-03-15 20:46:35 +00:00
des
d57c826a42 Add (and document) options for showing only listening or connected sockets. 2001-03-06 13:48:38 +00:00
ru
ffef081534 Prepare for mdoc(7)NG. 2001-01-16 09:39:23 +00:00
ru
e5a37f2e6f mdoc(7) police: added missing .Os call. 2000-12-14 13:58:15 +00:00
ru
3b7dc88538 Spell the des's name correctly. 2000-11-14 13:19:26 +00:00
des
4c9cb1a066 Skip sockets with no SCB 2000-10-13 16:25:37 +00:00
des
80571cee96 Document the fact that sockstat now lists Unix domain sockets, and the new
command-line options for selecting what to display.
2000-10-07 14:11:43 +00:00
des
35a375ea90 Total rewrite. This was actually the first non-trivial Perl script I ever
wrote, and as such was not very pretty.

Changes that may cause problems for people who use sockstat in scripts:

 - sockstat(8) now displays Unix domain sockets in addition to IPv4 and IPv6
 - the last period in local and foreign addresses is changed to a colon to
   make the port number easier to spot
 - IPv4 and IPv6 sockets are listed separately (IPv4 first, then IPv6, then
   Unix)
2000-10-07 14:10:37 +00:00
ru
cea09e03a4 Restore support for displaying raw IPv4 sockets and
correct the author's name.  Were broken in rev 1.6.

Approved by:	des
2000-08-30 13:24:01 +00:00