cvs commit: src/usr.bin/sockstat sockstat.1 sockstat.c
Giorgos Keramidas
keramida at freebsd.org
Sun Nov 12 17:41:02 UTC 2006
On 2006-11-11 22:11, Giorgos Keramidas <keramida at freebsd.org> wrote:
> keramida 2006-11-11 22:11:54 UTC
>
> FreeBSD src repository (doc committer)
>
> Modified files:
> usr.bin/sockstat sockstat.1 sockstat.c
> Log:
> 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 at psualum.com>
> Approved by: des
>
> Revision Changes Path
> 1.21 +12 -2 src/usr.bin/sockstat/sockstat.1
> 1.14 +115 -12 src/usr.bin/sockstat/sockstat.c
This commit breaks sockstat when only *one* of -4 or -6 is used.
My apologies for not testing the changes more thoroughly, everyone :(
I've already emailed a followup patch to des@ for review, which you can
also find attached below. When I get his approval, I'll commit it to
CVS too:
%%%
diff -r b717d3e25bc0 -r a894939b8792 usr.bin/sockstat/sockstat.c
--- a/usr.bin/sockstat/sockstat.c Sun Nov 12 16:33:09 2006 +0100
+++ b/usr.bin/sockstat/sockstat.c Sun Nov 12 18:34:29 2006 +0100
@@ -714,12 +714,17 @@ main(int argc, char *argv[])
usage();
/*
- * If protos_defined remains -1, no -P was provided, so we have to
- * set up the default protocol list in protos[] first.
+ * If no -4, -6, -u or -P option was specified, use the default list
+ * of protocols *and* UNIX domain sockets. Otherwise, if only one
+ * of -4 and -6 was specified and we don't have a protocol list yet
+ * (i.e. because no -P option was present), still use the default
+ * protocol list (to list sockets of the respective address family).
*/
if (!opt_4 && !opt_6 && !opt_u && protos_defined == -1) {
opt_u = 1;
protos_defined = set_default_protos();
+ } else if ((opt_4 || opt_6) && protos_defined == -1) {
+ protos_defined = set_default_protos();
}
if (!opt_4 && !opt_6)
%%%
More information about the cvs-src
mailing list