diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-12-01 14:37:26 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-12-01 20:35:03 +0900 |
commit | f6032ff3e0970c93c97387e10c56a4be2a978948 (patch) | |
tree | 749235771bebf393cf322f9b6f04f722134b1b5d /src/network/networkd-radv.c | |
parent | 312dac28695ebe7c316c9b2dec40bc7182f5e28e (diff) | |
download | systemd-f6032ff3e0970c93c97387e10c56a4be2a978948.tar.gz |
network: radv: use the uplink interface used in DHCPv6-PD
Diffstat (limited to 'src/network/networkd-radv.c')
-rw-r--r-- | src/network/networkd-radv.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/network/networkd-radv.c b/src/network/networkd-radv.c index c98528aee9..a137270cfa 100644 --- a/src/network/networkd-radv.c +++ b/src/network/networkd-radv.c @@ -410,6 +410,8 @@ set_domains: } static int radv_find_uplink(Link *link, Link **ret) { + int r; + assert(link); if (link->network->router_uplink_name) @@ -419,8 +421,12 @@ static int radv_find_uplink(Link *link, Link **ret) { return link_get_by_index(link->manager, link->network->router_uplink_index, ret); if (link->network->router_uplink_index == UPLINK_INDEX_AUTO) { - /* It is not necessary to propagate error in automatic selection. */ - if (manager_find_uplink(link->manager, AF_INET6, link, ret) < 0) + if (link_dhcp6_pd_is_enabled(link)) + r = dhcp6_pd_find_uplink(link, ret); /* When DHCPv6PD is enabled, use its uplink. */ + else + r = manager_find_uplink(link->manager, AF_INET6, link, ret); + if (r < 0) + /* It is not necessary to propagate error in automatic selection. */ *ret = NULL; return 0; } |