From a9fea38024e6bde9118cc12bc8417b207ffc4da9 Mon Sep 17 00:00:00 2001 From: Alexey Perevalov Date: Thu, 31 Jul 2014 17:12:33 +0400 Subject: Fix overquota output result Current implementation shows "packet" for none byte quota type. It means "packet" was used for overquota counter as well and it wasn't so informative. This commmit adds additional column - overquota with yes/no value. Signed-off-by: Alexey Perevalov Signed-off-by: Pablo Neira Ayuso --- src/libnetfilter_acct.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/libnetfilter_acct.c b/src/libnetfilter_acct.c index 7f539b6..bb15c68 100644 --- a/src/libnetfilter_acct.c +++ b/src/libnetfilter_acct.c @@ -267,14 +267,22 @@ nfacct_snprintf_plain(char *buf, size_t rem, struct nfacct *nfacct, if (nfacct->flags) { uint32_t mode; + char *mode_name; mode = nfacct_attr_get_u64(nfacct, NFACCT_ATTR_FLAGS); + if (mode & NFACCT_F_QUOTA_PKTS) + mode_name = "packet"; + else if (mode & NFACCT_F_QUOTA_BYTES) + mode_name = "byte"; + else + mode_name = "unknown"; ret = snprintf(buf + offset, rem, - ", quota = %.20"PRIu64", mode = %s", + ", quota = %.20"PRIu64", mode = %s"\ + ", overquota = %s", nfacct_attr_get_u64(nfacct, NFACCT_ATTR_QUOTA), - mode == NFACCT_F_QUOTA_BYTES ? - "byte" : "packet"); + mode_name, + mode & NFACCT_F_OVERQUOTA ? "yes" : "no"); SNPRINTF_CHECK(ret, rem, offset, len); } -- cgit v1.2.3