diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c index d04d523c32..de15074550 100644 --- a/src/network/networkd-network.c +++ b/src/network/networkd-network.c @@ -153,7 +153,6 @@ int network_verify(Network *network) { RoutePrefix *route_prefix, *route_prefix_next; Neighbor *neighbor, *neighbor_next; AddressLabel *label, *label_next; - NextHop *nexthop; Address *address, *address_next; Prefix *prefix, *prefix_next; Route *route, *route_next; @@ -299,9 +298,7 @@ int network_verify(Network *network) { if (route_section_verify(route, network) < 0) route_free(route); - HASHMAP_FOREACH(nexthop, network->nexthops_by_section) - if (nexthop_section_verify(nexthop) < 0) - nexthop_free(nexthop); + network_verify_nexthops(network); LIST_FOREACH_SAFE(static_fdb_entries, fdb, fdb_next, network->static_fdb_entries) if (section_is_invalid(fdb->section)) diff --git a/src/network/networkd-nexthop.c b/src/network/networkd-nexthop.c index 61c33f4900..1f03cbfe07 100644 --- a/src/network/networkd-nexthop.c +++ b/src/network/networkd-nexthop.c @@ -439,7 +439,7 @@ int manager_rtnl_process_nexthop(sd_netlink *rtnl, sd_netlink_message *message, return 1; } -int nexthop_section_verify(NextHop *nh) { +static int nexthop_section_verify(NextHop *nh) { if (section_is_invalid(nh->section)) return -EINVAL; @@ -449,6 +449,16 @@ int nexthop_section_verify(NextHop *nh) { return 0; } +void network_verify_nexthops(Network *network) { + NextHop *nh; + + assert(network); + + HASHMAP_FOREACH(nh, network->nexthops_by_section) + if (nexthop_section_verify(nh) < 0) + nexthop_free(nh); +} + int config_parse_nexthop_id( const char *unit, const char *filename, diff --git a/src/network/networkd-nexthop.h b/src/network/networkd-nexthop.h index 8f4686d864..f286f0e61e 100644 --- a/src/network/networkd-nexthop.h +++ b/src/network/networkd-nexthop.h @@ -30,7 +30,8 @@ typedef struct NextHop { } NextHop; NextHop *nexthop_free(NextHop *nexthop); -int nexthop_section_verify(NextHop *nexthop); + +void network_verify_nexthops(Network *network); int link_set_nexthop(Link *link);