1
0
mirror of https://github.com/systemd/systemd.git synced 2025-01-12 13:18:14 +03:00

sysctl-util: introduce sysctl_read_ip_property_int() and _uint32()

Currently not used, but will be used later.
This commit is contained in:
Yu Watanabe 2024-10-12 16:40:19 +09:00
parent 39b2ee5369
commit d56d07fc1e
2 changed files with 29 additions and 0 deletions

View 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);
}

View 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);