PERFORCE change 166796 for review

Gabor Pali pgj at FreeBSD.org
Thu Jul 30 15:28:15 UTC 2009


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

Change 166796 by pgj at petymeg-current on 2009/07/30 15:27:25

	Add a helper function for ICMP6 type name resolution.

Affected files ...

.. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#42 edit
.. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#47 edit

Differences ...

==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#42 (text+ko) ====

@@ -537,6 +537,7 @@
 u_int64_t   netstat_icmps_get_badaddr(const struct icmp_stat *);
 u_int64_t   netstat_icmps_get_noroute(const struct icmp_stat *);
 const char  *netstat_icmpname(int);
+const char  *netstat_icmp6name(int);
 int	    netstat_icmp_get_maskrepl(void *kvm_handle);
 
 const struct pim_stat	*netstat_get_pimstats(const struct stat_type *);

==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#47 (text+ko) ====

@@ -1729,6 +1729,265 @@
 	"icmp photuris",		/* RFC 2521 */
 };
 
+static	const char *icmp6names[] = {
+	"#0",
+	"unreach",
+	"packet too big",
+	"time exceed",
+	"parameter problem",
+	"#5",
+	"#6",
+	"#7",
+	"#8",
+	"#9",
+	"#10",
+	"#11",
+	"#12",
+	"#13",
+	"#14",
+	"#15",
+	"#16",
+	"#17",
+	"#18",
+	"#19",
+	"#20",
+	"#21",
+	"#22",
+	"#23",
+	"#24",
+	"#25",
+	"#26",
+	"#27",
+	"#28",
+	"#29",
+	"#30",
+	"#31",
+	"#32",
+	"#33",
+	"#34",
+	"#35",
+	"#36",
+	"#37",
+	"#38",
+	"#39",
+	"#40",
+	"#41",
+	"#42",
+	"#43",
+	"#44",
+	"#45",
+	"#46",
+	"#47",
+	"#48",
+	"#49",
+	"#50",
+	"#51",
+	"#52",
+	"#53",
+	"#54",
+	"#55",
+	"#56",
+	"#57",
+	"#58",
+	"#59",
+	"#60",
+	"#61",
+	"#62",
+	"#63",
+	"#64",
+	"#65",
+	"#66",
+	"#67",
+	"#68",
+	"#69",
+	"#70",
+	"#71",
+	"#72",
+	"#73",
+	"#74",
+	"#75",
+	"#76",
+	"#77",
+	"#78",
+	"#79",
+	"#80",
+	"#81",
+	"#82",
+	"#83",
+	"#84",
+	"#85",
+	"#86",
+	"#87",
+	"#88",
+	"#89",
+	"#80",
+	"#91",
+	"#92",
+	"#93",
+	"#94",
+	"#95",
+	"#96",
+	"#97",
+	"#98",
+	"#99",
+	"#100",
+	"#101",
+	"#102",
+	"#103",
+	"#104",
+	"#105",
+	"#106",
+	"#107",
+	"#108",
+	"#109",
+	"#110",
+	"#111",
+	"#112",
+	"#113",
+	"#114",
+	"#115",
+	"#116",
+	"#117",
+	"#118",
+	"#119",
+	"#120",
+	"#121",
+	"#122",
+	"#123",
+	"#124",
+	"#125",
+	"#126",
+	"#127",
+	"echo",
+	"echo reply",
+	"multicast listener query",
+	"MLDv1 listener report",
+	"MLDv1 listener done",
+	"router solicitation",
+	"router advertisement",
+	"neighbor solicitation",
+	"neighbor advertisement",
+	"redirect",
+	"router renumbering",
+	"node information request",
+	"node information reply",
+	"inverse neighbor solicitation",
+	"inverse neighbor advertisement",
+	"MLDv2 listener report",
+	"#144",
+	"#145",
+	"#146",
+	"#147",
+	"#148",
+	"#149",
+	"#150",
+	"#151",
+	"#152",
+	"#153",
+	"#154",
+	"#155",
+	"#156",
+	"#157",
+	"#158",
+	"#159",
+	"#160",
+	"#161",
+	"#162",
+	"#163",
+	"#164",
+	"#165",
+	"#166",
+	"#167",
+	"#168",
+	"#169",
+	"#170",
+	"#171",
+	"#172",
+	"#173",
+	"#174",
+	"#175",
+	"#176",
+	"#177",
+	"#178",
+	"#179",
+	"#180",
+	"#181",
+	"#182",
+	"#183",
+	"#184",
+	"#185",
+	"#186",
+	"#187",
+	"#188",
+	"#189",
+	"#180",
+	"#191",
+	"#192",
+	"#193",
+	"#194",
+	"#195",
+	"#196",
+	"#197",
+	"#198",
+	"#199",
+	"#200",
+	"#201",
+	"#202",
+	"#203",
+	"#204",
+	"#205",
+	"#206",
+	"#207",
+	"#208",
+	"#209",
+	"#210",
+	"#211",
+	"#212",
+	"#213",
+	"#214",
+	"#215",
+	"#216",
+	"#217",
+	"#218",
+	"#219",
+	"#220",
+	"#221",
+	"#222",
+	"#223",
+	"#224",
+	"#225",
+	"#226",
+	"#227",
+	"#228",
+	"#229",
+	"#230",
+	"#231",
+	"#232",
+	"#233",
+	"#234",
+	"#235",
+	"#236",
+	"#237",
+	"#238",
+	"#239",
+	"#240",
+	"#241",
+	"#242",
+	"#243",
+	"#244",
+	"#245",
+	"#246",
+	"#247",
+	"#248",
+	"#249",
+	"#250",
+	"#251",
+	"#252",
+	"#253",
+	"#254",
+	"#255",
+};
+
 const char *
 netstat_icmpname(int type)
 {
@@ -1738,6 +1997,18 @@
     return (NULL);
 }
 
+#define SizeOf(X) \
+    ((int)(sizeof(X) / sizeof(X[0])))
+
+const char *
+netstat_icmp6name(int type)
+{
+    if (0 <= type && type < SizeOf(icmp6names)) {
+	    return (icmp6names[type]);
+    }
+    return (NULL);
+}
+
 const char *
 routename(in_addr_t in, int numeric)
 {


More information about the p4-projects mailing list