From: Mathieu Schroeter Date: Tue, 8 Aug 2023 21:42:55 +0000 (+0200) Subject: Add get_long utility and adapt get_integer accordingly X-Git-Tag: v6.6.0~37 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3a463c152a9a5503f9c37362b63acd6f72ecba6c;p=thirdparty%2Fiproute2.git Add get_long utility and adapt get_integer accordingly Signed-off-by: Mathieu Schroeter Signed-off-by: David Ahern --- diff --git a/include/utils.h b/include/utils.h index 3159dbab1..cf11174d9 100644 --- a/include/utils.h +++ b/include/utils.h @@ -142,6 +142,7 @@ int get_addr_rta(inet_prefix *dst, const struct rtattr *rta, int family); int get_addr_ila(__u64 *val, const char *arg); int read_prop(const char *dev, char *prop, long *value); +int get_long(long *val, const char *arg, int base); int get_integer(int *val, const char *arg, int base); int get_unsigned(unsigned *val, const char *arg, int base); int get_time_rtt(unsigned *val, const char *arg, int *raw); diff --git a/lib/utils.c b/lib/utils.c index b1f273054..68f443038 100644 --- a/lib/utils.c +++ b/lib/utils.c @@ -108,7 +108,7 @@ static int get_hex(char c) return -1; } -int get_integer(int *val, const char *arg, int base) +int get_long(long *val, const char *arg, int base) { long res; char *ptr; @@ -133,6 +133,17 @@ int get_integer(int *val, const char *arg, int base) if ((res == LONG_MAX || res == LONG_MIN) && errno == ERANGE) return -1; + if (val) + *val = res; + return 0; +} + +int get_integer(int *val, const char *arg, int base) +{ + long res; + + res = get_long(NULL, arg, base); + /* Outside range of int */ if (res < INT_MIN || res > INT_MAX) return -1;