PERFORCE change 166708 for review

Gabor Pali pgj at FreeBSD.org
Tue Jul 28 23:59:16 UTC 2009


http://perforce.freebsd.org/chv.cgi?CH=166708

Change 166708 by pgj at petymeg-current on 2009/07/28 23:58:34

	Use libnetstat(3) for DDP statistics in netstat(1).

Affected files ...

.. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/atalk.c#3 edit
.. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#18 edit
.. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#26 edit

Differences ...

==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/atalk.c#3 (text+ko) ====

@@ -58,6 +58,7 @@
 #include <stdint.h>
 #include <stdio.h>
 #include <string.h>
+#include <netstat.h>
 #include "extern.h"
 
 struct	ddpcb ddpcb;
@@ -260,30 +261,26 @@
 	}
 }
 
-#define	ANY(x,y,z) if (x || sflag <= 1) \
-	printf("\t%lu %s%s%s\n",x,y,plural(x),z)
-
 /*
  * Dump DDP statistics structure.
  */
 void
-ddp_stats(u_long off __unused, const char *name, int af1 __unused,
-    int proto __unused)
+ddp_stats(const struct stat_type *sttp)
 {
-	struct ddpstat ddpstat;
+	const struct ddp_stat *s;
 
-	if (off == 0)
-		return;
-	kread(off, (char *)&ddpstat, sizeof (ddpstat));
-	printf("%s:\n", name);
-	ANY(ddpstat.ddps_short, "packet", " with short headers ");
-	ANY(ddpstat.ddps_long, "packet", " with long headers ");
-	ANY(ddpstat.ddps_nosum, "packet", " with no checksum ");
-	ANY(ddpstat.ddps_tooshort, "packet", " too short ");
-	ANY(ddpstat.ddps_badsum, "packet", " with bad checksum ");
-	ANY(ddpstat.ddps_toosmall, "packet", " with not enough data ");
-	ANY(ddpstat.ddps_forward, "packet", " forwarded ");
-	ANY(ddpstat.ddps_encap, "packet", " encapsulated ");
-	ANY(ddpstat.ddps_cantforward, "packet", " rcvd for unreachable dest ");
-	ANY(ddpstat.ddps_nosockspace, "packet", " dropped due to no socket space ");
+	s = netstat_get_ddpstats(sttp);
+#define	ANY(x,y,z) if (netstat_ddps_get_##x(s) || sflag <= 1) \
+	printf("\t%ju %s%s%s\n",netstat_ddps_get_##x(s),y,\
+	    plural(netstat_ddps_get_##x(s)),z)
+	ANY(short, "packet", " with short headers ");
+	ANY(long, "packet", " with long headers ");
+	ANY(nosum, "packet", " with no checksum ");
+	ANY(tooshort, "packet", " too short ");
+	ANY(badsum, "packet", " with bad checksum ");
+	ANY(toosmall, "packet", " with not enough data ");
+	ANY(forward, "packet", " forwarded ");
+	ANY(encap, "packet", " encapsulated ");
+	ANY(cantforward, "packet", " rcvd for unreachable dest ");
+	ANY(nosockspace, "packet", " dropped due to no socket space ");
 }

==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#18 (text+ko) ====

@@ -148,7 +148,7 @@
 void	nserr_stats(u_long, const char *, int, int);
 
 void	atalkprotopr(u_long, const char *, int, int);
-void	ddp_stats(u_long, const char *, int, int);
+void	ddp_stats(const struct stat_type *);
 
 #ifdef NETGRAPH
 void	netgraphprotopr(u_long, const char *, int, int);

==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#26 (text+ko) ====

@@ -93,45 +93,43 @@
 	{ .n_name = "_ipxstat"},
 #define	N_SPXSTAT	7
 	{ .n_name = "_spx_istat"},
-#define	N_DDPSTAT	8
-	{ .n_name = "_ddpstat"},
-#define	N_DDPCB		9
+#define	N_DDPCB		8
 	{ .n_name = "_ddpcb"},
-#define	N_NGSOCKS	10
+#define	N_NGSOCKS	9
 	{ .n_name = "_ngsocklist"},
-#define	N_IP6STAT	11
+#define	N_IP6STAT	10
 	{ .n_name = "_ip6stat" },
-#define	N_ICMP6STAT	12
+#define	N_ICMP6STAT	11
 	{ .n_name = "_icmp6stat" },
-#define	N_IPSECSTAT	13
+#define	N_IPSECSTAT	12
 	{ .n_name = "_ipsec4stat" },
-#define	N_IPSEC6STAT	14
+#define	N_IPSEC6STAT	13
 	{ .n_name = "_ipsec6stat" },
-#define	N_PIM6STAT	15
+#define	N_PIM6STAT	14
 	{ .n_name = "_pim6stat" },
-#define	N_MRT6STAT	16
+#define	N_MRT6STAT	15
 	{ .n_name = "_mrt6stat" },
-#define	N_MF6CTABLE	17
+#define	N_MF6CTABLE	16
 	{ .n_name = "_mf6ctable" },
-#define	N_MIF6TABLE	18
+#define	N_MIF6TABLE	17
 	{ .n_name = "_mif6table" },
-#define	N_PFKEYSTAT	19
+#define	N_PFKEYSTAT	18
 	{ .n_name = "_pfkeystat" },
-#define	N_RTTRASH	20
+#define	N_RTTRASH	19
 	{ .n_name = "_rttrash" },
-#define	N_PFSYNCSTAT	21
+#define	N_PFSYNCSTAT	20
 	{ .n_name = "_pfsyncstats" },
-#define	N_AHSTAT	22
+#define	N_AHSTAT	21
 	{ .n_name = "_ahstat" },
-#define	N_ESPSTAT	23
+#define	N_ESPSTAT	22
 	{ .n_name = "_espstat" },
-#define	N_IPCOMPSTAT	24
+#define	N_IPCOMPSTAT	23
 	{ .n_name = "_ipcompstat" },
-#define	N_RIP6STAT	25
+#define	N_RIP6STAT	24
 	{ .n_name = "_rip6stat" },
-#define	N_SCTPSTAT	26
+#define	N_SCTPSTAT	25
 	{ .n_name = "_sctpstat" },
-#define	N_MFCTABLESIZE	27
+#define	N_MFCTABLESIZE	26
 	{ .n_name = "_mfctablesize" },
 	{ .n_name = NULL },
 };
@@ -222,8 +220,8 @@
 #endif
 
 struct protox atalkprotox[] = {
-	{ N_DDPCB,	N_DDPSTAT,	1,	atalkprotopr, NULL, stat_MAX,
-	  ddp_stats,	NULL,		"ddp",	0,	0 },
+	{ N_DDPCB,	0,	1,	atalkprotopr, ddp_stats, stat_DDP,
+	  NULL,		NULL,		"ddp",	0,	0 },
 	{ -1,		-1,		0,	NULL,	NULL, stat_MAX,
 	  NULL,		NULL,		NULL,	0,	0 }
 };


More information about the p4-projects mailing list