]> git.proxmox.com Git - mirror_iproute2.git/commitdiff
iproute2: add 64bit support to ifstat
authorEric Dumazet <eric.dumazet@gmail.com>
Mon, 23 Aug 2010 19:44:56 +0000 (21:44 +0200)
committerStephen Hemminger <stephen.hemminger@vyatta.com>
Mon, 23 Aug 2010 20:05:12 +0000 (13:05 -0700)
Le lundi 23 août 2010 à 10:33 -0700, Stephen Hemminger a écrit :

> I think this breaks the wraparound detection code in this command.
>
>

OK lets fix the bug only, before adding 64bit counters capabilities.

Thanks

[PATCH] iproute2: add 64bit arches support to ifstat

ifstat assumes IFLA_STATS fields are "unsigned long", but they are
__u32. This fix is needed to let ifstat run on 64bit arches.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
misc/ifstat.c

index 5cf2e01031b91f57213f10296122278c7a003b0e..5b229e720ede1486d27ed60968e1ba583b521ae5 100644 (file)
@@ -49,7 +49,7 @@ int npatterns;
 char info_source[128];
 int source_mismatch;
 
-#define MAXS (sizeof(struct rtnl_link_stats)/sizeof(unsigned long))
+#define MAXS (sizeof(struct rtnl_link_stats)/sizeof(__u32))
 
 struct ifstat_ent
 {
@@ -58,7 +58,7 @@ struct ifstat_ent
        int                     ifindex;
        unsigned long long      val[MAXS];
        double                  rate[MAXS];
-       unsigned long           ival[MAXS];
+       __u32                   ival[MAXS];
 };
 
 struct ifstat_ent *kern_db;
@@ -187,7 +187,7 @@ void load_raw_table(FILE *fp)
                        *next++ = 0;
                        if (sscanf(p, "%llu", n->val+i) != 1)
                                abort();
-                       n->ival[i] = (unsigned long)n->val[i];
+                       n->ival[i] = (__u32)n->val[i];
                        p = next;
                        if (!(next = strchr(p, ' ')))
                                abort();
@@ -563,8 +563,6 @@ static void usage(void)
 "   -s, --noupdate     don;t update history\n"
 "   -t, --interval=SECS        report average over the last SECS\n"
 "   -V, --version      output version information\n"
-"   -z, --zeros                show entries with zero activity\n"
-"   -e, --errors       show errors\n"
 "   -z, --zeros                show entries with zero activity\n");
 
        exit(-1);
@@ -581,8 +579,6 @@ static const struct option longopts[] = {
        { "interval", 1, 0, 't' },
        { "version", 0, 0, 'V' },
        { "zeros", 0, 0, 'z' },
-       { "errors", 0, 0, 'e' },
-       { "zeros", 0, 0, 'z' },
        { 0 }
 };