]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
Kilo/Mega/Giga otput in chain-summary fixed
authorHarald Welte <laforge@gnumonks.org>
Sun, 25 Mar 2001 19:55:04 +0000 (19:55 +0000)
committerHarald Welte <laforge@gnumonks.org>
Sun, 25 Mar 2001 19:55:04 +0000 (19:55 +0000)
iptables.c

index f838356cd08835a93e05eac381c9e97904b9a768..bc76f8c7f2003cc1c09842643f29696cc3883db2 100644 (file)
@@ -1010,6 +1010,28 @@ register_target(struct iptables_target *me)
        me->tflags = 0;
 }
 
+static void
+print_num(u_int64_t number, unsigned int format)
+{
+       if (format & FMT_KILOMEGAGIGA) {
+               if (number > 99999) {
+                       number = (number + 500) / 1000;
+                       if (number > 9999) {
+                               number = (number + 500) / 1000;
+                               if (number > 9999) {
+                                       number = (number + 500) / 1000;
+                                       printf(FMT("%4lluG ","%lluG "),number);
+                               }
+                               else printf(FMT("%4lluM ","%lluM "), number);
+                       } else
+                               printf(FMT("%4lluK ","%lluK "), number);
+               } else
+                       printf(FMT("%5llu ","%llu "), number);
+       } else
+               printf(FMT("%8llu ","%llu "), number);
+}
+
+
 static void
 print_header(unsigned int format, const char *chain, iptc_handle_t *handle)
 {
@@ -1018,9 +1040,13 @@ print_header(unsigned int format, const char *chain, iptc_handle_t *handle)
        printf("Chain %s", chain);
        if (pol) {
                printf(" (policy %s", pol);
-               if (!(format & FMT_NOCOUNTS))
-                       printf(" %llu packets, %llu bytes",
-                              counters.pcnt, counters.bcnt);
+               if (!(format & FMT_NOCOUNTS)) {
+                       fputc(' ', stdout);
+                       print_num(counters.pcnt, (format|FMT_NOTABLE));
+                       fputs("packets, ", stdout);
+                       print_num(counters.bcnt, (format|FMT_NOTABLE));
+                       fputs("bytes", stdout);
+               }
                printf(")\n");
        } else {
                unsigned int refs;
@@ -1055,26 +1081,6 @@ print_header(unsigned int format, const char *chain, iptc_handle_t *handle)
        printf("\n");
 }
 
-static void
-print_num(u_int64_t number, unsigned int format)
-{
-       if (format & FMT_KILOMEGAGIGA) {
-               if (number > 99999) {
-                       number = (number + 500) / 1000;
-                       if (number > 9999) {
-                               number = (number + 500) / 1000;
-                               if (number > 9999) {
-                                       number = (number + 500) / 1000;
-                                       printf(FMT("%4lluG ","%lluG "),number);
-                               }
-                               else printf(FMT("%4lluM ","%lluM "), number);
-                       } else
-                               printf(FMT("%4lluK ","%lluK "), number);
-               } else
-                       printf(FMT("%5llu ","%llu "), number);
-       } else
-               printf(FMT("%8llu ","%llu "), number);
-}
 
 static int
 print_match(const struct ipt_entry_match *m,