]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network/ndisc: allow to call ndisc_request_address() without sd_ndisc_router object
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 9 Apr 2024 03:02:20 +0000 (12:02 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 9 Apr 2024 03:06:32 +0000 (12:06 +0900)
Preparation for later commits.

src/network/networkd-ndisc.c

index e1853bb31ccf6b26437d4aae96c4d2c03354374f..487a1e63098efed550050ce713b0b34138304a8b 100644 (file)
@@ -328,20 +328,19 @@ static int ndisc_address_handler(sd_netlink *rtnl, sd_netlink_message *m, Reques
 }
 
 static int ndisc_request_address(Address *address, Link *link, sd_ndisc_router *rt) {
-        struct in6_addr router;
         bool is_new;
         int r;
 
         assert(address);
         assert(link);
-        assert(rt);
 
-        r = sd_ndisc_router_get_sender_address(rt, &router);
-        if (r < 0)
-                return r;
+        if (rt) {
+                r = sd_ndisc_router_get_sender_address(rt, &address->provider.in6);
+                if (r < 0)
+                        return r;
 
-        address->source = NETWORK_CONFIG_SOURCE_NDISC;
-        address->provider.in6 = router;
+                address->source = NETWORK_CONFIG_SOURCE_NDISC;
+        }
 
         r = free_and_strdup_warn(&address->netlabel, link->network->ndisc_netlabel);
         if (r < 0)