From d78254d7f9d18ef76377a3013302430cce8ea702 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Sun, 27 Feb 2011 17:38:34 +0100 Subject: libxtables: min-max option support Signed-off-by: Jan Engelhardt --- include/xtables.h.in | 3 +++ xtoptions.c | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/include/xtables.h.in b/include/xtables.h.in index 91a6eaaa..14d7b043 100644 --- a/include/xtables.h.in +++ b/include/xtables.h.in @@ -76,6 +76,8 @@ enum xt_option_flags { * @flags: bitmask of option flags, see %XTOPT_* * @ptroff: offset into private structure for member * @size: size of the item pointed to by @ptroff; this is a safeguard + * @min: lowest allowed value (for singular integral types) + * @max: highest allowed value (for singular integral types) */ struct xt_option_entry { const char *name; @@ -83,6 +85,7 @@ struct xt_option_entry { unsigned int id, excl, also, flags; unsigned int ptroff; size_t size; + unsigned int min, max; }; /** diff --git a/xtoptions.c b/xtoptions.c index 843395be..6a119ec7 100644 --- a/xtoptions.c +++ b/xtoptions.c @@ -89,6 +89,11 @@ static void xtopt_parse_int(struct xt_option_call *cb) unsigned int lmin = 0, lmax = UINT32_MAX; unsigned int value; + if (cb->entry->min != 0) + lmin = cb->entry->min; + if (cb->entry->max != 0) + lmax = cb->entry->max; + if (!xtables_strtoui(cb->arg, NULL, &value, lmin, lmax)) xt_params->exit_err(PARAMETER_PROBLEM, "%s: bad value for option \"--%s\", " -- cgit v1.2.3