summaryrefslogtreecommitdiffstats
path: root/libxtables
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2012-10-29 10:49:42 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2013-01-04 20:29:39 +0100
commit2f655ede64e07a861e3ec50150f572ed98755013 (patch)
tree5a6ce8171c678450d77af249a1ba99acb865bc64 /libxtables
parentd1e7922a587a239e16e0dbe654e63f76e1375e49 (diff)
libxtables: add xtables_print_num
This function is used both by iptables and ip6tables, and refactorize to avoid longer than 80-chars per column lines of code. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'libxtables')
-rw-r--r--libxtables/xtables.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/libxtables/xtables.c b/libxtables/xtables.c
index da174e20..009ab911 100644
--- a/libxtables/xtables.c
+++ b/libxtables/xtables.c
@@ -1912,6 +1912,35 @@ xtables_parse_protocol(const char *s)
return -1;
}
+void xtables_print_num(uint64_t number, unsigned int format)
+{
+ if (!(format & FMT_KILOMEGAGIGA)) {
+ printf(FMT("%8llu ","%llu "), (unsigned long long)number);
+ return;
+ }
+ if (number <= 99999) {
+ printf(FMT("%5llu ","%llu "), (unsigned long long)number);
+ return;
+ }
+ number = (number + 500) / 1000;
+ if (number <= 9999) {
+ printf(FMT("%4lluK ","%lluK "), (unsigned long long)number);
+ return;
+ }
+ number = (number + 500) / 1000;
+ if (number <= 9999) {
+ printf(FMT("%4lluM ","%lluM "), (unsigned long long)number);
+ return;
+ }
+ number = (number + 500) / 1000;
+ if (number <= 9999) {
+ printf(FMT("%4lluG ","%lluG "), (unsigned long long)number);
+ return;
+ }
+ number = (number + 500) / 1000;
+ printf(FMT("%4lluT ","%lluT "), (unsigned long long)number);
+}
+
int kernel_version;
void get_kernel_version(void)