Package: net-tools
Version: 1.60-24.1
Severity: normal
Tags: patch

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


netstat -s will mess up any number > 2^31.  


Example, input is:

bjorn@canardo:~$ tail -2 /proc/net/netstat 
IpExt: InNoRoutes InTruncatedPkts InMcastPkts OutMcastPkts InBcastPkts 
OutBcastPkts InOctets OutOctets InMcastOctets OutMcastOctets InBcastOctets 
OutBcastOctets
IpExt: 2 0 152463 40 2363641 84544 89530720060 449078447969 4692500 3059 
717279980 6612480


Output becomes (not synchronized so counters are changed, but the pattern
should still be obvious):

bjorn@canardo:~$ netstat -s |sed -ne '/^IpExt/,$p'
IpExt:
    InNoRoutes: 2
    InMcastPkts: 152464
    OutMcastPkts: 40
    InBcastPkts: 2363664
    OutBcastPkts: 84545
    InOctets: -662600012
    OutOctets: -1810944975
    InMcastOctets: 4692532
    OutMcastOctets: 3059
    InBcastOctets: 717286964
    OutBcastOctets: 6612556


The attached patch fixes this for me, but may need some polishing to be
useful cross-platform...  The patch is based on top of the current Debian
package (1.60-24.1) with all other patches applied.



Bjørn



- -- System Information:
Debian Release: 6.0.2
  APT prefers stable
  APT policy: (700, 'stable'), (600, 'unstable'), (500, 'stable-updates'), (1, 
'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-5-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages net-tools depends on:
ii  libc6                         2.11.2-10  Embedded GNU C Library: Shared lib

net-tools recommends no packages.

net-tools suggests no packages.

- -- no debconf information

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAk5khbcACgkQ10rqkowbIsllxQCfT+/JFd0oRnNDCpnT068uGM9i
YjYAnRKBmRIJPdQm0bXLi/pjKadEZtDG
=viuW
-----END PGP SIGNATURE-----
--- net-tools-1.60/statistics.c.debian-orig	2011-09-05 09:52:16.000000000 +0200
+++ net-tools-1.60/statistics.c	2011-09-05 09:53:18.000000000 +0200
@@ -64,115 +64,115 @@
 struct entry Iptab[] =
 {
     {"Forwarding", N_("Forwarding is %s"), i_forward | I_STATIC},
-    {"DefaultTTL", N_("Default TTL is %u"), number | I_STATIC},
-    {"InReceives", N_("%u total packets received"), number},
-    {"InHdrErrors", N_("%u with invalid headers"), opt_number},
-    {"InAddrErrors", N_("%u with invalid addresses"), opt_number},
-    {"ForwDatagrams", N_("%u forwarded"), number},
-    {"InUnknownProtos", N_("%u with unknown protocol"), opt_number},
-    {"InDiscards", N_("%u incoming packets discarded"), number},
-    {"InDelivers", N_("%u incoming packets delivered"), number},
-    {"OutRequests", N_("%u requests sent out"), number},	/*? */
-    {"OutDiscards", N_("%u outgoing packets dropped"), opt_number},
-    {"OutNoRoutes", N_("%u dropped because of missing route"), opt_number},
-    {"ReasmTimeout", N_("%u fragments dropped after timeout"), opt_number},
-    {"ReasmReqds", N_("%u reassemblies required"), opt_number},	/* ? */
-    {"ReasmOKs", N_("%u packets reassembled ok"), opt_number},
-    {"ReasmFails", N_("%u packet reassembles failed"), opt_number},
-    {"FragOKs", N_("%u fragments received ok"), opt_number},
-    {"FragFails", N_("%u fragments failed"), opt_number},
-    {"FragCreates", N_("%u fragments created"), opt_number}
+    {"DefaultTTL", N_("Default TTL is %lu"), number | I_STATIC},
+    {"InReceives", N_("%lu total packets received"), number},
+    {"InHdrErrors", N_("%lu with invalid headers"), opt_number},
+    {"InAddrErrors", N_("%lu with invalid addresses"), opt_number},
+    {"ForwDatagrams", N_("%lu forwarded"), number},
+    {"InUnknownProtos", N_("%lu with unknown protocol"), opt_number},
+    {"InDiscards", N_("%lu incoming packets discarded"), number},
+    {"InDelivers", N_("%lu incoming packets delivered"), number},
+    {"OutRequests", N_("%lu requests sent out"), number},	/*? */
+    {"OutDiscards", N_("%lu outgoing packets dropped"), opt_number},
+    {"OutNoRoutes", N_("%lu dropped because of missing route"), opt_number},
+    {"ReasmTimeout", N_("%lu fragments dropped after timeout"), opt_number},
+    {"ReasmReqds", N_("%lu reassemblies required"), opt_number},	/* ? */
+    {"ReasmOKs", N_("%lu packets reassembled ok"), opt_number},
+    {"ReasmFails", N_("%lu packet reassembles failed"), opt_number},
+    {"FragOKs", N_("%lu fragments received ok"), opt_number},
+    {"FragFails", N_("%lu fragments failed"), opt_number},
+    {"FragCreates", N_("%lu fragments created"), opt_number}
 };
 
 struct entry Ip6tab[] =
 {
-    {"Ip6InReceives", N_("%u total packets received"), number},
-    {"Ip6InHdrErrors", N_("%u with invalid headers"), opt_number},
-    {"Ip6InTooBigErrors", N_("%u with packets too big"), opt_number},
-    {"Ip6InNoRoutes", N_("%u incoming packets with no route"), opt_number},
-    {"Ip6InAddrErrors", N_("%u with invalid addresses"), opt_number},
-    {"Ip6InUnknownProtos", N_("%u with unknown protocol"), opt_number},
-    {"Ip6InTruncatedPkts", N_("%u with truncated packets"), opt_number},
-    {"Ip6InDiscards", N_("%u incoming packets discarded"), number},
-    {"Ip6InDelivers", N_("%u incoming packets delivered"), number},
-    {"Ip6OutForwDatagrams", N_("%u forwarded"), number},
-    {"Ip6OutRequests", N_("%u requests sent out"), number},     /*? */
-    {"Ip6OutDiscards", N_("%u outgoing packets dropped"), opt_number},
-    {"Ip6OutNoRoutes", N_("%u dropped because of missing route"), opt_number},
-    {"Ip6ReasmTimeout", N_("%u fragments dropped after timeout"), opt_number},
-    {"Ip6ReasmReqds", N_("%u reassemblies required"), opt_number}, /* ? */
-    {"Ip6ReasmOKs", N_("%u packets reassembled ok"), opt_number},
-    {"Ip6ReasmFails", N_("%u packet reassembles failed"), opt_number},
-    {"Ip6FragOKs", N_("%u fragments received ok"), opt_number},
-    {"Ip6FragFails", N_("%u fragments failed"), opt_number},
-    {"Ip6FragCreates", N_("%u fragments created"), opt_number},
-    {"Ip6InMcastPkts", N_("%u incoming multicast packets"), opt_number},
-    {"Ip6OutMcastPkts", N_("%u outgoing multicast packets"), opt_number}
+    {"Ip6InReceives", N_("%lu total packets received"), number},
+    {"Ip6InHdrErrors", N_("%lu with invalid headers"), opt_number},
+    {"Ip6InTooBigErrors", N_("%lu with packets too big"), opt_number},
+    {"Ip6InNoRoutes", N_("%lu incoming packets with no route"), opt_number},
+    {"Ip6InAddrErrors", N_("%lu with invalid addresses"), opt_number},
+    {"Ip6InUnknownProtos", N_("%lu with unknown protocol"), opt_number},
+    {"Ip6InTruncatedPkts", N_("%lu with truncated packets"), opt_number},
+    {"Ip6InDiscards", N_("%lu incoming packets discarded"), number},
+    {"Ip6InDelivers", N_("%lu incoming packets delivered"), number},
+    {"Ip6OutForwDatagrams", N_("%lu forwarded"), number},
+    {"Ip6OutRequests", N_("%lu requests sent out"), number},     /*? */
+    {"Ip6OutDiscards", N_("%lu outgoing packets dropped"), opt_number},
+    {"Ip6OutNoRoutes", N_("%lu dropped because of missing route"), opt_number},
+    {"Ip6ReasmTimeout", N_("%lu fragments dropped after timeout"), opt_number},
+    {"Ip6ReasmReqds", N_("%lu reassemblies required"), opt_number}, /* ? */
+    {"Ip6ReasmOKs", N_("%lu packets reassembled ok"), opt_number},
+    {"Ip6ReasmFails", N_("%lu packet reassembles failed"), opt_number},
+    {"Ip6FragOKs", N_("%lu fragments received ok"), opt_number},
+    {"Ip6FragFails", N_("%lu fragments failed"), opt_number},
+    {"Ip6FragCreates", N_("%lu fragments created"), opt_number},
+    {"Ip6InMcastPkts", N_("%lu incoming multicast packets"), opt_number},
+    {"Ip6OutMcastPkts", N_("%lu outgoing multicast packets"), opt_number}
 };
 
 struct entry Icmptab[] =
 {
-    {"InMsgs", N_("%u ICMP messages received"), number},
-    {"InErrors", N_("%u input ICMP message failed."), number},
-    {"InDestUnreachs", N_("destination unreachable: %u"), i_inp_icmp | I_TITLE},
-    {"InTimeExcds", N_("timeout in transit: %u"), i_inp_icmp | I_TITLE},
-    {"InParmProbs", N_("wrong parameters: %u"), i_inp_icmp | I_TITLE},	/*? */
-    {"InSrcQuenchs", N_("source quenches: %u"), i_inp_icmp | I_TITLE},
-    {"InRedirects", N_("redirects: %u"), i_inp_icmp | I_TITLE},
-    {"InEchos", N_("echo requests: %u"), i_inp_icmp | I_TITLE},
-    {"InEchoReps", N_("echo replies: %u"), i_inp_icmp | I_TITLE},
-    {"InTimestamps", N_("timestamp request: %u"), i_inp_icmp | I_TITLE},
-    {"InTimestampReps", N_("timestamp reply: %u"), i_inp_icmp | I_TITLE},
-    {"InAddrMasks", N_("address mask request: %u"), i_inp_icmp | I_TITLE},	/*? */
-    {"InAddrMaskReps", N_("address mask replies: %u"), i_inp_icmp | I_TITLE},	/*? */
-    {"OutMsgs", N_("%u ICMP messages sent"), number},
-    {"OutErrors", N_("%u ICMP messages failed"), number},
-    {"OutDestUnreachs", N_("destination unreachable: %u"), i_outp_icmp | I_TITLE},
-    {"OutTimeExcds", N_("time exceeded: %u"), i_outp_icmp | I_TITLE},
-    {"OutParmProbs", N_("wrong parameters: %u"), i_outp_icmp | I_TITLE},	/*? */
-    {"OutSrcQuenchs", N_("source quench: %u"), i_outp_icmp | I_TITLE},
-    {"OutRedirects", N_("redirect: %u"), i_outp_icmp | I_TITLE},
-    {"OutEchos", N_("echo request: %u"), i_outp_icmp | I_TITLE},
-    {"OutEchoReps", N_("echo replies: %u"), i_outp_icmp | I_TITLE},
-    {"OutTimestamps", N_("timestamp requests: %u"), i_outp_icmp | I_TITLE},
-    {"OutTimestampReps", N_("timestamp replies: %u"), i_outp_icmp | I_TITLE},
-    {"OutAddrMasks", N_("address mask requests: %u"), i_outp_icmp | I_TITLE},
-    {"OutAddrMaskReps", N_("address mask replies: %u"), i_outp_icmp | I_TITLE},
+    {"InMsgs", N_("%lu ICMP messages received"), number},
+    {"InErrors", N_("%lu input ICMP message failed."), number},
+    {"InDestUnreachs", N_("destination unreachable: %lu"), i_inp_icmp | I_TITLE},
+    {"InTimeExcds", N_("timeout in transit: %lu"), i_inp_icmp | I_TITLE},
+    {"InParmProbs", N_("wrong parameters: %lu"), i_inp_icmp | I_TITLE},	/*? */
+    {"InSrcQuenchs", N_("source quenches: %lu"), i_inp_icmp | I_TITLE},
+    {"InRedirects", N_("redirects: %lu"), i_inp_icmp | I_TITLE},
+    {"InEchos", N_("echo requests: %lu"), i_inp_icmp | I_TITLE},
+    {"InEchoReps", N_("echo replies: %lu"), i_inp_icmp | I_TITLE},
+    {"InTimestamps", N_("timestamp request: %lu"), i_inp_icmp | I_TITLE},
+    {"InTimestampReps", N_("timestamp reply: %lu"), i_inp_icmp | I_TITLE},
+    {"InAddrMasks", N_("address mask request: %lu"), i_inp_icmp | I_TITLE},	/*? */
+    {"InAddrMaskReps", N_("address mask replies: %lu"), i_inp_icmp | I_TITLE},	/*? */
+    {"OutMsgs", N_("%lu ICMP messages sent"), number},
+    {"OutErrors", N_("%lu ICMP messages failed"), number},
+    {"OutDestUnreachs", N_("destination unreachable: %lu"), i_outp_icmp | I_TITLE},
+    {"OutTimeExcds", N_("time exceeded: %lu"), i_outp_icmp | I_TITLE},
+    {"OutParmProbs", N_("wrong parameters: %lu"), i_outp_icmp | I_TITLE},	/*? */
+    {"OutSrcQuenchs", N_("source quench: %lu"), i_outp_icmp | I_TITLE},
+    {"OutRedirects", N_("redirect: %lu"), i_outp_icmp | I_TITLE},
+    {"OutEchos", N_("echo request: %lu"), i_outp_icmp | I_TITLE},
+    {"OutEchoReps", N_("echo replies: %lu"), i_outp_icmp | I_TITLE},
+    {"OutTimestamps", N_("timestamp requests: %lu"), i_outp_icmp | I_TITLE},
+    {"OutTimestampReps", N_("timestamp replies: %lu"), i_outp_icmp | I_TITLE},
+    {"OutAddrMasks", N_("address mask requests: %lu"), i_outp_icmp | I_TITLE},
+    {"OutAddrMaskReps", N_("address mask replies: %lu"), i_outp_icmp | I_TITLE},
 };
 
 struct entry Icmp6tab[] =
 {
-    {"Icmp6InMsgs", N_("%u ICMP messages received"), number},
-    {"Icmp6InErrors", N_("%u input ICMP message failed."), number},
-    {"Icmp6InDestUnreachs", N_("destination unreachable: %u"), i_inp_icmp | I_TITLE},
-    {"Icmp6InPktTooBigs", N_("packets too big: %u"), i_inp_icmp | I_TITLE},
-    {"Icmp6InTimeExcds", N_("received ICMPv6 time exceeded: %u"), i_inp_icmp | I_TITLE},
-    {"Icmp6InParmProblems", N_("parameter problem: %u"), i_inp_icmp | I_TITLE},
-    {"Icmp6InEchos", N_("echo requests: %u"), i_inp_icmp | I_TITLE},
-    {"Icmp6InEchoReplies", N_("echo replies: %u"), i_inp_icmp | I_TITLE},
-    {"Icmp6InGroupMembQueries", N_("group member queries: %u"), i_inp_icmp | I_TITLE},
-    {"Icmp6InGroupMembResponses", N_("group member responses: %u"), i_inp_icmp | I_TITLE},
-    {"Icmp6InGroupMembReductions", N_("group member reductions: %u"), i_inp_icmp | I_TITLE},
-    {"Icmp6InRouterSolicits", N_("router solicits: %u"), i_inp_icmp | I_TITLE},
-    {"Icmp6InRouterAdvertisements", N_("router advertisement: %u"), i_inp_icmp | I_TITLE},
-    {"Icmp6InNeighborSolicits", N_("neighbour solicits: %u"), i_inp_icmp | I_TITLE},
-    {"Icmp6InNeighborAdvertisements", N_("neighbour advertisement: %u"), i_inp_icmp | I_TITLE},
-    {"Icmp6InRedirects", N_("redirects: %u"), i_inp_icmp | I_TITLE},
-    {"Icmp6OutMsgs", N_("%u ICMP messages sent"), number},
-    {"Icmp6OutDestUnreachs", N_("destination unreachable: %u"), i_outp_icmp | I_TITLE},
-    {"Icmp6OutPktTooBigs", N_("packets too big: %u"), i_outp_icmp | I_TITLE},
-    {"Icmp6OutTimeExcds", N_("sent ICMPv6 time exceeded: %u"), i_outp_icmp | I_TITLE},
-    {"Icmp6OutParmProblems", N_("parameter problem: %u"), i_outp_icmp | I_TITLE},
-    {"Icmp6OutEchos", N_("echo requests: %u"), i_outp_icmp | I_TITLE},
-    {"Icmp6OutEchoReplies", N_("echo replies: %u"), i_outp_icmp | I_TITLE},
-    {"Icmp6OutGroupMembQueries", N_("group member queries: %u"), i_outp_icmp | I_TITLE},
-    {"Icmp6OutGroupMembResponses", N_("group member responses: %u"), i_outp_icmp | I_TITLE},
-    {"Icmp6OutGroupMembReductions", N_("group member reductions: %u"), i_outp_icmp | I_TITLE},
-    {"Icmp6OutRouterSolicits", N_("router solicits: %u"), i_outp_icmp | I_TITLE},
-    {"Icmp6OutRouterAdvertisements ", N_("router advertisement: %u"), i_outp_icmp | I_TITLE},
-    {"Icmp6OutNeighborSolicits", N_("neighbor solicits: %u"), i_outp_icmp | I_TITLE},
-    {"Icmp6OutNeighborAdvertisements", N_("neighbor advertisements: %u"), i_outp_icmp | I_TITLE},
-    {"Icmp6OutRedirects", N_("redirects: %u"), i_outp_icmp | I_TITLE},
+    {"Icmp6InMsgs", N_("%lu ICMP messages received"), number},
+    {"Icmp6InErrors", N_("%lu input ICMP message failed."), number},
+    {"Icmp6InDestUnreachs", N_("destination unreachable: %lu"), i_inp_icmp | I_TITLE},
+    {"Icmp6InPktTooBigs", N_("packets too big: %lu"), i_inp_icmp | I_TITLE},
+    {"Icmp6InTimeExcds", N_("received ICMPv6 time exceeded: %lu"), i_inp_icmp | I_TITLE},
+    {"Icmp6InParmProblems", N_("parameter problem: %lu"), i_inp_icmp | I_TITLE},
+    {"Icmp6InEchos", N_("echo requests: %lu"), i_inp_icmp | I_TITLE},
+    {"Icmp6InEchoReplies", N_("echo replies: %lu"), i_inp_icmp | I_TITLE},
+    {"Icmp6InGroupMembQueries", N_("group member queries: %lu"), i_inp_icmp | I_TITLE},
+    {"Icmp6InGroupMembResponses", N_("group member responses: %lu"), i_inp_icmp | I_TITLE},
+    {"Icmp6InGroupMembReductions", N_("group member reductions: %lu"), i_inp_icmp | I_TITLE},
+    {"Icmp6InRouterSolicits", N_("router solicits: %lu"), i_inp_icmp | I_TITLE},
+    {"Icmp6InRouterAdvertisements", N_("router advertisement: %lu"), i_inp_icmp | I_TITLE},
+    {"Icmp6InNeighborSolicits", N_("neighbour solicits: %lu"), i_inp_icmp | I_TITLE},
+    {"Icmp6InNeighborAdvertisements", N_("neighbour advertisement: %lu"), i_inp_icmp | I_TITLE},
+    {"Icmp6InRedirects", N_("redirects: %lu"), i_inp_icmp | I_TITLE},
+    {"Icmp6OutMsgs", N_("%lu ICMP messages sent"), number},
+    {"Icmp6OutDestUnreachs", N_("destination unreachable: %lu"), i_outp_icmp | I_TITLE},
+    {"Icmp6OutPktTooBigs", N_("packets too big: %lu"), i_outp_icmp | I_TITLE},
+    {"Icmp6OutTimeExcds", N_("sent ICMPv6 time exceeded: %lu"), i_outp_icmp | I_TITLE},
+    {"Icmp6OutParmProblems", N_("parameter problem: %lu"), i_outp_icmp | I_TITLE},
+    {"Icmp6OutEchos", N_("echo requests: %lu"), i_outp_icmp | I_TITLE},
+    {"Icmp6OutEchoReplies", N_("echo replies: %lu"), i_outp_icmp | I_TITLE},
+    {"Icmp6OutGroupMembQueries", N_("group member queries: %lu"), i_outp_icmp | I_TITLE},
+    {"Icmp6OutGroupMembResponses", N_("group member responses: %lu"), i_outp_icmp | I_TITLE},
+    {"Icmp6OutGroupMembReductions", N_("group member reductions: %lu"), i_outp_icmp | I_TITLE},
+    {"Icmp6OutRouterSolicits", N_("router solicits: %lu"), i_outp_icmp | I_TITLE},
+    {"Icmp6OutRouterAdvertisements ", N_("router advertisement: %lu"), i_outp_icmp | I_TITLE},
+    {"Icmp6OutNeighborSolicits", N_("neighbor solicits: %lu"), i_outp_icmp | I_TITLE},
+    {"Icmp6OutNeighborAdvertisements", N_("neighbor advertisements: %lu"), i_outp_icmp | I_TITLE},
+    {"Icmp6OutRedirects", N_("redirects: %lu"), i_outp_icmp | I_TITLE},
 };
 
 struct entry Tcptab[] =
@@ -181,120 +181,120 @@
     {"RtoMin", "", number},
     {"RtoMax", "", number},
     {"MaxConn", "", number},
-    {"ActiveOpens", N_("%u active connections openings"), number},
-    {"PassiveOpens", N_("%u passive connection openings"), number},
-    {"AttemptFails", N_("%u failed connection attempts"), number},
-    {"EstabResets", N_("%u connection resets received"), number},
-    {"CurrEstab", N_("%u connections established"), number},
-    {"InSegs", N_("%u segments received"), number},
-    {"OutSegs", N_("%u segments send out"), number},
-    {"RetransSegs", N_("%u segments retransmited"), number},
-    {"InErrs", N_("%u bad segments received."), number},
-    {"OutRsts", N_("%u resets sent"), number},
+    {"ActiveOpens", N_("%lu active connections openings"), number},
+    {"PassiveOpens", N_("%lu passive connection openings"), number},
+    {"AttemptFails", N_("%lu failed connection attempts"), number},
+    {"EstabResets", N_("%lu connection resets received"), number},
+    {"CurrEstab", N_("%lu connections established"), number},
+    {"InSegs", N_("%lu segments received"), number},
+    {"OutSegs", N_("%lu segments send out"), number},
+    {"RetransSegs", N_("%lu segments retransmited"), number},
+    {"InErrs", N_("%lu bad segments received."), number},
+    {"OutRsts", N_("%lu resets sent"), number},
 };
 
 struct entry Udptab[] =
 {
-    {"InDatagrams", N_("%u packets received"), number},
-    {"NoPorts", N_("%u packets to unknown port received."), number},
-    {"InErrors", N_("%u packet receive errors"), number},
-    {"OutDatagrams", N_("%u packets sent"), number},
+    {"InDatagrams", N_("%lu packets received"), number},
+    {"NoPorts", N_("%lu packets to unknown port received."), number},
+    {"InErrors", N_("%lu packet receive errors"), number},
+    {"OutDatagrams", N_("%lu packets sent"), number},
 };
 
 struct entry Udp6tab[] =
 {
-    {"Udp6InDatagrams", N_("%u packets received"), number},
-    {"Udp6NoPorts", N_("%u packets to unknown port received."), number},
-    {"Udp6InErrors", N_("%u packet receive errors"), number},
-    {"Udp6OutDatagrams", N_("%u packets sent"), number},
+    {"Udp6InDatagrams", N_("%lu packets received"), number},
+    {"Udp6NoPorts", N_("%lu packets to unknown port received."), number},
+    {"Udp6InErrors", N_("%lu packet receive errors"), number},
+    {"Udp6OutDatagrams", N_("%lu packets sent"), number},
 };
 
 struct entry Tcpexttab[] =
 {
-    {"SyncookiesSent", N_("%u SYN cookies sent"), opt_number},
-    {"SyncookiesRecv", N_("%u SYN cookies received"), opt_number},
-    {"SyncookiesFailed", N_("%u invalid SYN cookies received"), opt_number},
+    {"SyncookiesSent", N_("%lu SYN cookies sent"), opt_number},
+    {"SyncookiesRecv", N_("%lu SYN cookies received"), opt_number},
+    {"SyncookiesFailed", N_("%lu invalid SYN cookies received"), opt_number},
 
-    { "EmbryonicRsts", N_("%u resets received for embryonic SYN_RECV sockets"),
+    { "EmbryonicRsts", N_("%lu resets received for embryonic SYN_RECV sockets"),
       opt_number },  
-    { "PruneCalled", N_("%u packets pruned from receive queue because of socket"
+    { "PruneCalled", N_("%lu packets pruned from receive queue because of socket"
 			" buffer overrun"), opt_number },  
     /* obsolete: 2.2.0 doesn't do that anymore */
-    { "RcvPruned", N_("%u packets pruned from receive queue"), opt_number },
-    { "OfoPruned", N_("%u packets dropped from out-of-order queue because of"
+    { "RcvPruned", N_("%lu packets pruned from receive queue"), opt_number },
+    { "OfoPruned", N_("%lu packets dropped from out-of-order queue because of"
 		      " socket buffer overrun"), opt_number }, 
-    { "OutOfWindowIcmps", N_("%u ICMP packets dropped because they were "
+    { "OutOfWindowIcmps", N_("%lu ICMP packets dropped because they were "
 			     "out-of-window"), opt_number }, 
-    { "LockDroppedIcmps", N_("%u ICMP packets dropped because"
+    { "LockDroppedIcmps", N_("%lu ICMP packets dropped because"
 			     " socket was locked"), opt_number },
-    { "TW", N_("%u TCP sockets finished time wait in fast timer"), opt_number },
-    { "TWRecycled", N_("%u time wait sockets recycled by time stamp"), opt_number }, 
-    { "TWKilled", N_("%u TCP sockets finished time wait in slow timer"), opt_number },
-    { "PAWSPassive", N_("%u passive connections rejected because of"
+    { "TW", N_("%lu TCP sockets finished time wait in fast timer"), opt_number },
+    { "TWRecycled", N_("%lu time wait sockets recycled by time stamp"), opt_number }, 
+    { "TWKilled", N_("%lu TCP sockets finished time wait in slow timer"), opt_number },
+    { "PAWSPassive", N_("%lu passive connections rejected because of"
 			" time stamp"), opt_number },
-    { "PAWSActive", N_("%u active connections rejected because of "
+    { "PAWSActive", N_("%lu active connections rejected because of "
 		       "time stamp"), opt_number },
-    { "PAWSEstab", N_("%u packets rejects in established connections because of"
+    { "PAWSEstab", N_("%lu packets rejects in established connections because of"
 		      " timestamp"), opt_number },
-    { "DelayedACKs", N_("%u delayed acks sent"), opt_number },
-    { "DelayedACKLocked", N_("%u delayed acks further delayed because of"
+    { "DelayedACKs", N_("%lu delayed acks sent"), opt_number },
+    { "DelayedACKLocked", N_("%lu delayed acks further delayed because of"
 			     " locked socket"), opt_number },
-    { "DelayedACKLost", N_("Quick ack mode was activated %u times"), opt_number },
-    { "ListenOverflows", N_("%u times the listen queue of a socket overflowed"),
+    { "DelayedACKLost", N_("Quick ack mode was activated %lu times"), opt_number },
+    { "ListenOverflows", N_("%lu times the listen queue of a socket overflowed"),
       opt_number },
-    { "ListenDrops", N_("%u SYNs to LISTEN sockets dropped"), opt_number },
-    { "TCPPrequeued", N_("%u packets directly queued to recvmsg prequeue."), 
+    { "ListenDrops", N_("%lu SYNs to LISTEN sockets dropped"), opt_number },
+    { "TCPPrequeued", N_("%lu packets directly queued to recvmsg prequeue."), 
       opt_number },
-    { "TCPDirectCopyFromBacklog", N_("%u bytes directly in process context from backlog"), opt_number },
-    { "TCPDirectCopyFromPrequeue", N_("%u bytes directly received in process context from prequeue"),
+    { "TCPDirectCopyFromBacklog", N_("%lu bytes directly in process context from backlog"), opt_number },
+    { "TCPDirectCopyFromPrequeue", N_("%lu bytes directly received in process context from prequeue"),
 				      opt_number },
-    { "TCPPrequeueDropped", N_("%u packets dropped from prequeue"), opt_number },
-    { "TCPHPHits", N_("%u packet headers predicted"), number },
-    { "TCPHPHitsToUser", N_("%u packets header predicted and "
+    { "TCPPrequeueDropped", N_("%lu packets dropped from prequeue"), opt_number },
+    { "TCPHPHits", N_("%lu packet headers predicted"), number },
+    { "TCPHPHitsToUser", N_("%lu packets header predicted and "
 			    "directly queued to user"), opt_number },
-    { "SockMallocOOM", N_("Ran %u times out of system memory during " 
+    { "SockMallocOOM", N_("Ran %lu times out of system memory during " 
 			  "packet sending"), opt_number }, 
-    { "TCPPureAcks", N_("%u acknowledgments not containing data payload received"), opt_number },
-    { "TCPHPAcks", N_("%u predicted acknowledgments"), opt_number },
-    { "TCPRenoRecovery", N_("%u times recovered from packet loss due to fast retransmit"), opt_number },
-    { "TCPSackRecovery", N_("%u times recovered from packet loss by selective acknowledgements"), opt_number },
-    { "TCPSACKReneging", N_("%u bad SACK blocks received"), opt_number },
-    { "TCPFACKReorder", N_("Detected reordering %u times using FACK"), opt_number },
-    { "TCPSACKReorder", N_("Detected reordering %u times using SACK"), opt_number },
-    { "TCPTSReorder", N_("Detected reordering %u times using time stamp"), opt_number },
-    { "TCPRenoReorder", N_("Detected reordering %u times using reno fast retransmit"), opt_number },
-    { "TCPFullUndo", N_("%u congestion windows fully recovered without slow start"), opt_number }, 
-    { "TCPPartialUndo", N_("%u congestion windows partially recovered using Hoe heuristic"), opt_number },
-    { "TCPDSackUndo", N_("%u congestion window recovered without slow start using DSACK"), opt_number },
-    { "TCPLossUndo", N_("%u congestion windows recovered without slow start after partial ack"), opt_number },
-    { "TCPLostRetransmits", N_("%u retransmits lost"), opt_number },
-    { "TCPRenoFailures",  N_("%u timeouts after reno fast retransmit"), opt_number },
-    { "TCPSackFailures",  N_("%u timeouts after SACK recovery"), opt_number },
-    { "TCPLossFailures",  N_("%u timeouts in loss state"), opt_number },
-    { "TCPFastRetrans", N_("%u fast retransmits"), opt_number },
-    { "TCPForwardRetrans", N_("%u forward retransmits"), opt_number }, 
-    { "TCPSlowStartRetrans", N_("%u retransmits in slow start"), opt_number },
-    { "TCPTimeouts", N_("%u other TCP timeouts"), opt_number },
-    { "TCPRenoRecoveryFailed", N_("%u reno fast retransmits failed"), opt_number },
-    { "TCPSackRecoveryFail", N_("%u SACK retransmits failed"), opt_number },
-    { "TCPSchedulerFailed", N_("%u times receiver scheduled too late for direct processing"), opt_number },
-    { "TCPRcvCollapsed", N_("%u packets collapsed in receive queue due to low socket buffer"), opt_number },
-    { "TCPDSACKOldSent", N_("%u DSACKs sent for old packets"), opt_number },
-    { "TCPDSACKOfoSent", N_("%u DSACKs sent for out of order packets"), opt_number },
-    { "TCPDSACKRecv", N_("%u DSACKs received"), opt_number },
-    { "TCPDSACKOfoRecv", N_("%u DSACKs for out of order packets received"), opt_number },
-    { "TCPAbortOnSyn", N_("%u connections reset due to unexpected SYN"), opt_number },
-    { "TCPAbortOnData", N_("%u connections reset due to unexpected data"), opt_number },
-    { "TCPAbortOnClose", N_("%u connections reset due to early user close"), opt_number },
-    { "TCPAbortOnMemory", N_("%u connections aborted due to memory pressure"), opt_number },
-    { "TCPAbortOnTimeout", N_("%u connections aborted due to timeout"), opt_number },
-    { "TCPAbortOnLinger", N_("%u connections aborted after user close in linger timeout"), opt_number },
-    { "TCPAbortFailed", N_("%u times unabled to send RST due to no memory"), opt_number }, 
-    { "TCPMemoryPressures", N_("TCP ran low on memory %u times"), opt_number }, 
-    { "TCPLoss", N_("%u TCP data loss events"), opt_number },
-    { "TCPDSACKUndo", N_("%u congestion windows recovered without slow start by DSACK"), 
+    { "TCPPureAcks", N_("%lu acknowledgments not containing data payload received"), opt_number },
+    { "TCPHPAcks", N_("%lu predicted acknowledgments"), opt_number },
+    { "TCPRenoRecovery", N_("%lu times recovered from packet loss due to fast retransmit"), opt_number },
+    { "TCPSackRecovery", N_("%lu times recovered from packet loss by selective acknowledgements"), opt_number },
+    { "TCPSACKReneging", N_("%lu bad SACK blocks received"), opt_number },
+    { "TCPFACKReorder", N_("Detected reordering %lu times using FACK"), opt_number },
+    { "TCPSACKReorder", N_("Detected reordering %lu times using SACK"), opt_number },
+    { "TCPTSReorder", N_("Detected reordering %lu times using time stamp"), opt_number },
+    { "TCPRenoReorder", N_("Detected reordering %lu times using reno fast retransmit"), opt_number },
+    { "TCPFullUndo", N_("%lu congestion windows fully recovered without slow start"), opt_number }, 
+    { "TCPPartialUndo", N_("%lu congestion windows partially recovered using Hoe heuristic"), opt_number },
+    { "TCPDSackUndo", N_("%lu congestion window recovered without slow start using DSACK"), opt_number },
+    { "TCPLossUndo", N_("%lu congestion windows recovered without slow start after partial ack"), opt_number },
+    { "TCPLostRetransmits", N_("%lu retransmits lost"), opt_number },
+    { "TCPRenoFailures",  N_("%lu timeouts after reno fast retransmit"), opt_number },
+    { "TCPSackFailures",  N_("%lu timeouts after SACK recovery"), opt_number },
+    { "TCPLossFailures",  N_("%lu timeouts in loss state"), opt_number },
+    { "TCPFastRetrans", N_("%lu fast retransmits"), opt_number },
+    { "TCPForwardRetrans", N_("%lu forward retransmits"), opt_number }, 
+    { "TCPSlowStartRetrans", N_("%lu retransmits in slow start"), opt_number },
+    { "TCPTimeouts", N_("%lu other TCP timeouts"), opt_number },
+    { "TCPRenoRecoveryFailed", N_("%lu reno fast retransmits failed"), opt_number },
+    { "TCPSackRecoveryFail", N_("%lu SACK retransmits failed"), opt_number },
+    { "TCPSchedulerFailed", N_("%lu times receiver scheduled too late for direct processing"), opt_number },
+    { "TCPRcvCollapsed", N_("%lu packets collapsed in receive queue due to low socket buffer"), opt_number },
+    { "TCPDSACKOldSent", N_("%lu DSACKs sent for old packets"), opt_number },
+    { "TCPDSACKOfoSent", N_("%lu DSACKs sent for out of order packets"), opt_number },
+    { "TCPDSACKRecv", N_("%lu DSACKs received"), opt_number },
+    { "TCPDSACKOfoRecv", N_("%lu DSACKs for out of order packets received"), opt_number },
+    { "TCPAbortOnSyn", N_("%lu connections reset due to unexpected SYN"), opt_number },
+    { "TCPAbortOnData", N_("%lu connections reset due to unexpected data"), opt_number },
+    { "TCPAbortOnClose", N_("%lu connections reset due to early user close"), opt_number },
+    { "TCPAbortOnMemory", N_("%lu connections aborted due to memory pressure"), opt_number },
+    { "TCPAbortOnTimeout", N_("%lu connections aborted due to timeout"), opt_number },
+    { "TCPAbortOnLinger", N_("%lu connections aborted after user close in linger timeout"), opt_number },
+    { "TCPAbortFailed", N_("%lu times unabled to send RST due to no memory"), opt_number }, 
+    { "TCPMemoryPressures", N_("TCP ran low on memory %lu times"), opt_number }, 
+    { "TCPLoss", N_("%lu TCP data loss events"), opt_number },
+    { "TCPDSACKUndo", N_("%lu congestion windows recovered without slow start by DSACK"), 
 	opt_number },
-    { "TCPRenoRecoveryFail", N_("%u classic Reno fast retransmits failed"), opt_number },
+    { "TCPRenoRecoveryFail", N_("%lu classic Reno fast retransmits failed"), opt_number },
 };
 
 struct tabtab {
@@ -330,7 +330,7 @@
     return strcmp(((struct entry *) a)->title, ((struct entry *) b)->title);
 }
 
-void printval(struct tabtab *tab, char *title, int val)
+void printval(struct tabtab *tab, char *title, long int val)
 {
     struct entry *ent = NULL, key;
     int type;
@@ -342,7 +342,7 @@
 			  sizeof(struct entry), cmpentries);
     if (!ent) {			/* try our best */
 	if (val) 
-		printf("%*s%s: %d\n", states[state].indent, "", title, val);
+		printf("%*s%s: %ld\n", states[state].indent, "", title, val);
 	return;
     }
     type = ent->type;

Reply via email to