Author: delphij
Date: Mon Jan 11 03:00:17 2010
New Revision: 202060
URL: http://svn.freebsd.org/changeset/base/202060

Log:
  Add a new option, -q howmany, which when used in conjuction with -w,
  exits netstat after _howmany_ outputs.
  
  Requested by: thomasa
  Reviewed by:  freebsd-net (bms, old version in early 2007)
  MFC after:    1 month

Modified:
  head/usr.bin/netstat/if.c
  head/usr.bin/netstat/main.c
  head/usr.bin/netstat/netstat.1
  head/usr.bin/netstat/netstat.h

Modified: head/usr.bin/netstat/if.c
==============================================================================
--- head/usr.bin/netstat/if.c   Mon Jan 11 02:31:00 2010        (r202059)
+++ head/usr.bin/netstat/if.c   Mon Jan 11 03:00:17 2010        (r202060)
@@ -679,6 +679,8 @@ loop:
        if (!first)
                putchar('\n');
        fflush(stdout);
+       if ((noutputs != 0) && (--noutputs == 0))
+               exit(0);
        oldmask = sigblock(sigmask(SIGALRM));
        while (!signalled)
                sigpause(0);

Modified: head/usr.bin/netstat/main.c
==============================================================================
--- head/usr.bin/netstat/main.c Mon Jan 11 02:31:00 2010        (r202059)
+++ head/usr.bin/netstat/main.c Mon Jan 11 03:00:17 2010        (r202060)
@@ -334,6 +334,7 @@ int hflag;          /* show counters in human re
 int    iflag;          /* show interfaces */
 int    Lflag;          /* show size of listen queues */
 int    mflag;          /* show memory stats */
+int    noutputs = 0;   /* how much outputs before we exit */
 int    numeric_addr;   /* show addresses numerically */
 int    numeric_port;   /* show ports numerically */
 static int pflag;      /* show given protocol */
@@ -359,7 +360,7 @@ main(int argc, char *argv[])
 
        af = AF_UNSPEC;
 
-       while ((ch = getopt(argc, argv, "AaBbdf:ghI:iLlM:mN:np:rSsuWw:xz")) != 
-1)
+       while ((ch = getopt(argc, argv, "AaBbdf:ghI:iLlM:mN:np:q:rSsuWw:xz")) 
!= -1)
                switch(ch) {
                case 'A':
                        Aflag = 1;
@@ -445,6 +446,11 @@ main(int argc, char *argv[])
                        }
                        pflag = 1;
                        break;
+               case 'q':
+                       noutputs = atoi(optarg);
+                       if (noutputs != 0)
+                               noutputs++;
+                       break;
                case 'r':
                        rflag = 1;
                        break;
@@ -779,7 +785,7 @@ usage(void)
 "               [-M core] [-N system]",
 "       netstat -i | -I interface [-abdhnW] [-f address_family]\n"
 "               [-M core] [-N system]",
-"       netstat -w wait [-I interface] [-d] [-M core] [-N system]",
+"       netstat -w wait [-I interface] [-d] [-M core] [-N system] [-q 
howmany]",
 "       netstat -s [-s] [-z] [-f protocol_family | -p protocol]\n"
 "               [-M core] [-N system]",
 "       netstat -i | -I interface -s [-f protocol_family | -p protocol]\n"

Modified: head/usr.bin/netstat/netstat.1
==============================================================================
--- head/usr.bin/netstat/netstat.1      Mon Jan 11 02:31:00 2010        
(r202059)
+++ head/usr.bin/netstat/netstat.1      Mon Jan 11 03:00:17 2010        
(r202060)
@@ -32,7 +32,7 @@
 .\"    @(#)netstat.1   8.8 (Berkeley) 4/18/94
 .\" $FreeBSD$
 .\"
-.Dd July 9, 2009
+.Dd January 10, 2010
 .Dt NETSTAT 1
 .Os
 .Sh NAME
@@ -133,6 +133,7 @@ is also present, print interface names u
 .Op Fl d
 .Op Fl M Ar core
 .Op Fl N Ar system
+.Op Fl q Ar howmany
 .Ek
 .Xc
 At intervals of
@@ -143,6 +144,11 @@ traffic on all configured network interf
 or a single
 .Ar interface .
 If
+.Fl q
+is also present, exit after
+.Ar howmany
+outputs.
+If
 .Fl d
 is also present, show the number of dropped packets.
 .It Xo

Modified: head/usr.bin/netstat/netstat.h
==============================================================================
--- head/usr.bin/netstat/netstat.h      Mon Jan 11 02:31:00 2010        
(r202059)
+++ head/usr.bin/netstat/netstat.h      Mon Jan 11 03:00:17 2010        
(r202060)
@@ -45,6 +45,7 @@ extern int    hflag;  /* show counters in hu
 extern int     iflag;  /* show interfaces */
 extern int     Lflag;  /* show size of listen queues */
 extern int     mflag;  /* show memory stats */
+extern int     noutputs;       /* how much outputs before we exit */
 extern int     numeric_addr;   /* show addresses numerically */
 extern int     numeric_port;   /* show ports numerically */
 extern int     rflag;  /* show routing tables (or routing stats) */
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to