network/nexthop: check if nexthop is really configured without ID

This commit is contained in:
Yu Watanabe
2023-12-21 04:22:46 +09:00
parent fb126bb168
commit 93db44eadb
+10
View File
@@ -251,6 +251,11 @@ static int nexthop_get(Link *link, const NextHop *in, NextHop **ret) {
if (nexthop_compare_full(nexthop, in) != 0)
continue;
/* Even if the configuration matches, it may be configured with another [NextHop] section
* that has an explicit ID. If so, the assigned nexthop is not the one we are looking for. */
if (set_contains(link->manager->nexthop_ids, UINT32_TO_PTR(nexthop->id)))
continue;
if (ret)
*ret = nexthop;
return 0;
@@ -307,6 +312,11 @@ static int nexthop_get_request(Link *link, const NextHop *in, Request **ret) {
if (nexthop_compare_full(nexthop, in) != 0)
continue;
/* Even if the configuration matches, it may be requested by another [NextHop] section
* that has an explicit ID. If so, the request is not the one we are looking for. */
if (set_contains(link->manager->nexthop_ids, UINT32_TO_PTR(nexthop->id)))
continue;
if (ret)
*ret = req;
return 0;