summaryrefslogtreecommitdiffstats
path: root/src/libnetfilter_acct.c
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 /src/libnetfilter_acct.c
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>
Diffstat (limited to 'src/libnetfilter_acct.c')
-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);
}