]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
Add get_long utility and adapt get_integer accordingly
authorMathieu Schroeter <mathieu@schroetersa.ch>
Tue, 8 Aug 2023 21:42:55 +0000 (23:42 +0200)
committerDavid Ahern <dsahern@kernel.org>
Sun, 13 Aug 2023 16:24:27 +0000 (10:24 -0600)
Signed-off-by: Mathieu Schroeter <mathieu@schroetersa.ch>
Signed-off-by: David Ahern <dsahern@kernel.org>
include/utils.h
lib/utils.c

index 3159dbab119cdf40e7ea60f1da04548bc708e5a4..cf11174d9ad309e5da8098e3d3e5e2260e49c629 100644 (file)
@@ -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);
index b1f273054906b468a681cf7f4a776af5f07f0571..68f44303894de3b5b847c35f7c9d143b48028766 100644 (file)
@@ -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;