summaryrefslogtreecommitdiffstats
path: root/iptables.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2001-03-25 19:55:04 +0000
committerHarald Welte <laforge@gnumonks.org>2001-03-25 19:55:04 +0000
commita0b4f797dc8227ebebd2de2568026e8f27cc4750 (patch)
treef41099b8af1a394aef6ace25c6ad1d0aad24ec9f /iptables.c
parent5ea4bcb45a70f79a8df53caddeeeccfa90d735ae (diff)
Kilo/Mega/Giga otput in chain-summary fixed
Diffstat (limited to 'iptables.c')
-rw-r--r--iptables.c52
1 files changed, 29 insertions, 23 deletions
diff --git a/iptables.c b/iptables.c
index f838356c..bc76f8c7 100644
--- a/iptables.c
+++ b/iptables.c
@@ -1011,6 +1011,28 @@ register_target(struct iptables_target *me)
}
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)
{
struct ipt_counters counters;
@@ -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,