summaryrefslogtreecommitdiff
path: root/src/libsystemd-network/sd-radv.c
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2021-02-21 23:19:26 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2021-03-04 05:24:54 +0900
commit61a9fa8f0cb6eb75a0d5add82b1f5e9eeb932222 (patch)
treedf6ab31e3995326994441ce1630e29e63a07349f /src/libsystemd-network/sd-radv.c
parentdbdcd51f78bde5e9033d98d61bbb750c868bde9d (diff)
downloadsystemd-61a9fa8f0cb6eb75a0d5add82b1f5e9eeb932222.tar.gz
libsystemd-network: introduce sd_xxx_{set,get}_ifname()
Diffstat (limited to 'src/libsystemd-network/sd-radv.c')
-rw-r--r--src/libsystemd-network/sd-radv.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/libsystemd-network/sd-radv.c b/src/libsystemd-network/sd-radv.c
index 164b24c684..531ab7bcd2 100644
--- a/src/libsystemd-network/sd-radv.c
+++ b/src/libsystemd-network/sd-radv.c
@@ -19,6 +19,7 @@
#include "io-util.h"
#include "macro.h"
#include "memory-util.h"
+#include "network-common.h"
#include "radv-internal.h"
#include "random-util.h"
#include "socket-util.h"
@@ -122,6 +123,7 @@ static sd_radv *radv_free(sd_radv *ra) {
sd_radv_detach_event(ra);
ra->fd = safe_close(ra->fd);
+ free(ra->ifname);
return mfree(ra);
}
@@ -432,6 +434,23 @@ _public_ int sd_radv_set_ifindex(sd_radv *ra, int ifindex) {
return 0;
}
+int sd_radv_set_ifname(sd_radv *ra, const char *ifname) {
+ assert_return(ra, -EINVAL);
+ assert_return(ifname, -EINVAL);
+
+ if (!ifname_valid_full(ifname, IFNAME_VALID_ALTERNATIVE))
+ return -EINVAL;
+
+ return free_and_strdup(&ra->ifname, ifname);
+}
+
+const char *sd_radv_get_ifname(sd_radv *ra) {
+ if (!ra)
+ return NULL;
+
+ return get_ifname(ra->ifindex, &ra->ifname);
+}
+
_public_ int sd_radv_set_mac(sd_radv *ra, const struct ether_addr *mac_addr) {
assert_return(ra, -EINVAL);