diff options
Diffstat (limited to 'src/network/networkd-network.c')
-rw-r--r-- | src/network/networkd-network.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c index cd63bb5f72..24d6556c76 100644 --- a/src/network/networkd-network.c +++ b/src/network/networkd-network.c @@ -159,7 +159,7 @@ int network_verify(Network *network) { if (set_isempty(network->match_mac) && strv_isempty(network->match_path) && strv_isempty(network->match_driver) && strv_isempty(network->match_type) && strv_isempty(network->match_name) && strv_isempty(network->match_property) && - !network->conditions) + strv_isempty(network->match_ssid) && !network->conditions) log_warning("%s: No valid settings found in the [Match] section. " "The file will match all interfaces. " "If that is intended, please add Name=* in the [Match] section.", @@ -547,6 +547,8 @@ static Network *network_free(Network *network) { strv_free(network->match_type); strv_free(network->match_name); strv_free(network->match_property); + strv_free(network->match_ssid); + set_free_free(network->match_bssid); condition_free_list(network->conditions); free(network->description); @@ -655,7 +657,7 @@ int network_get_by_name(Manager *manager, const char *name, Network **ret) { int network_get(Manager *manager, sd_device *device, const char *ifname, const struct ether_addr *address, - Network **ret) { + const char *ssid, const struct ether_addr *bssid, Network **ret) { Network *network; Iterator i; @@ -665,7 +667,8 @@ int network_get(Manager *manager, sd_device *device, ORDERED_HASHMAP_FOREACH(network, manager->networks, i) if (net_match_config(network->match_mac, network->match_path, network->match_driver, network->match_type, network->match_name, network->match_property, - device, address, ifname)) { + network->match_ssid, network->match_bssid, + device, address, ifname, ssid, bssid)) { if (network->match_name && device) { const char *attr; uint8_t name_assign_type = NET_NAME_UNKNOWN; |