network: introduce network_verify_neighbors()
This commit is contained in:
@@ -572,7 +572,7 @@ int manager_rtnl_process_neighbor(sd_netlink *rtnl, sd_netlink_message *message,
|
||||
return 1;
|
||||
}
|
||||
|
||||
int neighbor_section_verify(Neighbor *neighbor) {
|
||||
static int neighbor_section_verify(Neighbor *neighbor) {
|
||||
if (section_is_invalid(neighbor->section))
|
||||
return -EINVAL;
|
||||
|
||||
@@ -591,6 +591,17 @@ int neighbor_section_verify(Neighbor *neighbor) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
void network_verify_neighbors(Network *network) {
|
||||
Neighbor *neighbor;
|
||||
|
||||
assert(network);
|
||||
|
||||
HASHMAP_FOREACH(neighbor, network->neighbors_by_section)
|
||||
if (neighbor_section_verify(neighbor) < 0)
|
||||
neighbor_free(neighbor);
|
||||
}
|
||||
|
||||
|
||||
int config_parse_neighbor_address(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
|
||||
@@ -31,7 +31,8 @@ typedef struct Neighbor {
|
||||
} Neighbor;
|
||||
|
||||
void neighbor_free(Neighbor *neighbor);
|
||||
int neighbor_section_verify(Neighbor *neighbor);
|
||||
|
||||
void network_verify_neighbors(Network *network);
|
||||
|
||||
int link_set_neighbors(Link *link);
|
||||
int link_drop_neighbors(Link *link);
|
||||
|
||||
@@ -152,7 +152,6 @@ static int network_resolve_stacked_netdevs(Network *network) {
|
||||
|
||||
int network_verify(Network *network) {
|
||||
RoutePrefix *route_prefix, *route_prefix_next;
|
||||
Neighbor *neighbor;
|
||||
AddressLabel *label, *label_next;
|
||||
Address *address, *address_next;
|
||||
Prefix *prefix, *prefix_next;
|
||||
@@ -309,9 +308,7 @@ int network_verify(Network *network) {
|
||||
if (mdb_entry_verify(mdb) < 0)
|
||||
mdb_entry_free(mdb);
|
||||
|
||||
HASHMAP_FOREACH(neighbor, network->neighbors_by_section)
|
||||
if (neighbor_section_verify(neighbor) < 0)
|
||||
neighbor_free(neighbor);
|
||||
network_verify_neighbors(network);
|
||||
|
||||
LIST_FOREACH_SAFE(labels, label, label_next, network->address_labels)
|
||||
if (section_is_invalid(label->section))
|
||||
|
||||
Reference in New Issue
Block a user