]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sysctl-util: introduce sysctl_read_ip_property_int() and _uint32()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 12 Oct 2024 07:40:19 +0000 (16:40 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 14 Oct 2024 21:42:12 +0000 (06:42 +0900)
Currently not used, but will be used later.

src/basic/sysctl-util.c
src/basic/sysctl-util.h

index 8a73dc6b3ed879f0d099e472de024c4128dd323f..2feb4917d738ac2145238a1d6a25ae2d04a42ff7 100644 (file)
@@ -10,6 +10,7 @@
 #include "fileio.h"
 #include "log.h"
 #include "macro.h"
+#include "parse-util.h"
 #include "path-util.h"
 #include "socket-util.h"
 #include "string-util.h"
@@ -193,3 +194,29 @@ int sysctl_read_ip_property(int af, const char *ifname, const char *property, ch
 
         return sysctl_read(p, ret);
 }
+
+int sysctl_read_ip_property_int(int af, const char *ifname, const char *property, int *ret) {
+        _cleanup_free_ char *s = NULL;
+        int r;
+
+        assert(ret);
+
+        r = sysctl_read_ip_property(af, ifname, property, &s);
+        if (r < 0)
+                return r;
+
+        return safe_atoi(s, ret);
+}
+
+int sysctl_read_ip_property_uint32(int af, const char *ifname, const char *property, uint32_t *ret) {
+        _cleanup_free_ char *s = NULL;
+        int r;
+
+        assert(ret);
+
+        r = sysctl_read_ip_property(af, ifname, property, &s);
+        if (r < 0)
+                return r;
+
+        return safe_atou32(s, ret);
+}
index 041292f6933c01f2df172861af9ed7e9df6e51be..bbfc4ce1ea542c0172294e4d50bddc0cdab4d099 100644 (file)
@@ -17,6 +17,8 @@ static inline int sysctl_write(const char *property, const char *value) {
 }
 
 int sysctl_read_ip_property(int af, const char *ifname, const char *property, char **ret);
+int sysctl_read_ip_property_int(int af, const char *ifname, const char *property, int *ret);
+int sysctl_read_ip_property_uint32(int af, const char *ifname, const char *property, uint32_t *ret);
 int sysctl_write_ip_property(int af, const char *ifname, const char *property, const char *value, Hashmap **shadow);
 static inline int sysctl_write_ip_property_boolean(int af, const char *ifname, const char *property, bool value, Hashmap **shadow) {
         return sysctl_write_ip_property(af, ifname, property, one_zero(value), shadow);