summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Perevalov <a.perevalov@samsung.com>2014-07-31 17:12:33 +0400
committerPablo Neira Ayuso <pablo@netfilter.org>2014-07-31 20:45:56 +0200
commita9fea38024e6bde9118cc12bc8417b207ffc4da9 (patch)
treec672df5050e3c067baddb321951c82e0b2b24e2b
parentbb91cd49ae8d4a471b9c4c0c8ab86bb3940f7d69 (diff)
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 <a.perevalov@samsung.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--src/libnetfilter_acct.c14
1 files 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);
}