diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2018-10-19 11:48:59 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2018-10-19 11:51:30 +0200 |
commit | 5a44360e54c455871d3576a0a4303afbfb82088f (patch) | |
tree | b5eb32d9408ca4f5bfa48779603e50e0b22c2bc7 | |
parent | 2673fafaafd2fb72b2830fa07b172c2d4d5a553e (diff) |
Revert "extensions: libxt_quota: Allow setting the remaining quota"
This reverts commit 0a8f2bcadff157489a737f8cc8846adcb750b91f.
Google folks are reporting some issues with 32-bits arch, let's revert
this until we have a new version for this.
-rw-r--r-- | extensions/libxt_quota.c | 25 | ||||
-rw-r--r-- | include/linux/netfilter/xt_quota.h | 8 |
2 files changed, 5 insertions, 28 deletions
diff --git a/extensions/libxt_quota.c b/extensions/libxt_quota.c index 6371aa0f..bad77d23 100644 --- a/extensions/libxt_quota.c +++ b/extensions/libxt_quota.c @@ -9,36 +9,26 @@ enum { O_QUOTA = 0, - O_REMAIN = 1, }; static const struct xt_option_entry quota_opts[] = { {.name = "quota", .id = O_QUOTA, .type = XTTYPE_UINT64, .flags = XTOPT_MAND | XTOPT_INVERT | XTOPT_PUT, XTOPT_POINTER(struct xt_quota_info, quota)}, - {.name = "remain", .id = O_REMAIN, .type = XTTYPE_UINT64, - .flags = XTOPT_PUT, XTOPT_POINTER(struct xt_quota_info, remain)}, XTOPT_TABLEEND, }; static void quota_help(void) { printf("quota match options:\n" - "[!] --quota quota quota (bytes)\n" - " --remain remain remain (bytes)\n"); + "[!] --quota quota quota (bytes)\n"); } static void quota_print(const void *ip, const struct xt_entry_match *match, int numeric) { const struct xt_quota_info *q = (const void *)match->data; - if (q->flags & XT_QUOTA_INVERT) - printf(" !"); printf(" quota: %llu bytes", (unsigned long long)q->quota); - if (q->remain) { - printf(" remain: %llu bytes", - (unsigned long long)q->remain - 1); - } } static void @@ -49,10 +39,6 @@ quota_save(const void *ip, const struct xt_entry_match *match) if (q->flags & XT_QUOTA_INVERT) printf(" !"); printf(" --quota %llu", (unsigned long long) q->quota); - if (q->remain) { - printf(" --remain %llu", - (unsigned long long) q->remain - 1); - } } static void quota_parse(struct xt_option_call *cb) @@ -62,8 +48,6 @@ static void quota_parse(struct xt_option_call *cb) xtables_option_parse(cb); if (cb->invert) info->flags |= XT_QUOTA_INVERT; - if (cb->entry->id == O_REMAIN) - info->remain++; } static int quota_xlate(struct xt_xlate *xl, @@ -82,12 +66,7 @@ static struct xtables_match quota_match = { .name = "quota", .version = XTABLES_VERSION, .size = XT_ALIGN(sizeof (struct xt_quota_info)), - /* - * This size is only used for rule matching purpose when deleting - * rules. The real size copied out from new kernel xt_quota module - * is the whole struct xt_quota_info. - */ - .userspacesize = offsetof(struct xt_quota_info, remain), + .userspacesize = offsetof(struct xt_quota_info, master), .help = quota_help, .print = quota_print, .save = quota_save, diff --git a/include/linux/netfilter/xt_quota.h b/include/linux/netfilter/xt_quota.h index d817aab2..9314723f 100644 --- a/include/linux/netfilter/xt_quota.h +++ b/include/linux/netfilter/xt_quota.h @@ -14,11 +14,9 @@ struct xt_quota_info { __u32 flags; __u32 pad; __aligned_u64 quota; -#ifdef __KERNEL__ - atomic64_t counter; -#else - __aligned_u64 remain; -#endif + + /* Used internally by the kernel */ + struct xt_quota_priv *master; }; #endif /* _XT_QUOTA_H */ |