diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c index bc3d8ffd6..ce5c80d02 100644 --- a/wpa_supplicant/config.c +++ b/wpa_supplicant/config.c @@ -442,47 +442,99 @@ static char * wpa_config_write_bssid_hint(const struct parse_data *data, #endif /* NO_CONFIG_WRITE */ +static int wpa_config_parse_bssid_ignore(const struct parse_data *data, + struct wpa_ssid *ssid, int line, + const char *value) +{ + return wpa_config_parse_addr_list(data, line, value, + &ssid->bssid_ignore, + &ssid->num_bssid_ignore, + "bssid_ignore", 1, 1); +} + + +/* deprecated alias for bssid_ignore for backwards compatibility */ static int wpa_config_parse_bssid_blacklist(const struct parse_data *data, struct wpa_ssid *ssid, int line, const char *value) { return wpa_config_parse_addr_list(data, line, value, - &ssid->bssid_blacklist, - &ssid->num_bssid_blacklist, - "bssid_blacklist", 1, 1); + &ssid->bssid_ignore, + &ssid->num_bssid_ignore, + "bssid_ignore", 1, 1); } #ifndef NO_CONFIG_WRITE + +static char * wpa_config_write_bssid_ignore(const struct parse_data *data, + struct wpa_ssid *ssid) +{ + return wpa_config_write_addr_list(data, ssid->bssid_ignore, + ssid->num_bssid_ignore, + "bssid_ignore"); +} + + +/* deprecated alias for bssid_ignore for backwards compatibility */ static char * wpa_config_write_bssid_blacklist(const struct parse_data *data, struct wpa_ssid *ssid) { - return wpa_config_write_addr_list(data, ssid->bssid_blacklist, - ssid->num_bssid_blacklist, - "bssid_blacklist"); + return wpa_config_write_addr_list(data, ssid->bssid_ignore, + ssid->num_bssid_ignore, + "bssid_ignore"); } + #endif /* NO_CONFIG_WRITE */ +static int wpa_config_parse_bssid_accept(const struct parse_data *data, + struct wpa_ssid *ssid, int line, + const char *value) +{ + return wpa_config_parse_addr_list(data, line, value, + &ssid->bssid_accept, + &ssid->num_bssid_accept, + "bssid_accept", 1, 1); +} + + +/* deprecated alias for bssid_accept for backwards compatibility */ static int wpa_config_parse_bssid_whitelist(const struct parse_data *data, struct wpa_ssid *ssid, int line, const char *value) { return wpa_config_parse_addr_list(data, line, value, - &ssid->bssid_whitelist, - &ssid->num_bssid_whitelist, - "bssid_whitelist", 1, 1); + &ssid->bssid_accept, + &ssid->num_bssid_accept, + "bssid_accept", 1, 1); } #ifndef NO_CONFIG_WRITE + +static char * wpa_config_write_bssid_accept(const struct parse_data *data, + struct wpa_ssid *ssid) +{ + return wpa_config_write_addr_list(data, ssid->bssid_accept, + ssid->num_bssid_accept, + "bssid_accept"); +} + + +/* deprecated alias for bssid_accept for backwards compatibility */ static char * wpa_config_write_bssid_whitelist(const struct parse_data *data, struct wpa_ssid *ssid) { - return wpa_config_write_addr_list(data, ssid->bssid_whitelist, - ssid->num_bssid_whitelist, - "bssid_whitelist"); + return wpa_config_write_addr_list(data, ssid->bssid_accept, + ssid->num_bssid_accept, + "bssid_accept"); } + +#endif /* NO_CONFIG_WRITE */ + + +#ifndef NO_CONFIG_WRITE #endif /* NO_CONFIG_WRITE */ @@ -2362,8 +2414,10 @@ static const struct parse_data ssid_fields[] = { { INT_RANGE(scan_ssid, 0, 1) }, { FUNC(bssid) }, { FUNC(bssid_hint) }, - { FUNC(bssid_blacklist) }, - { FUNC(bssid_whitelist) }, + { FUNC(bssid_ignore) }, + { FUNC(bssid_accept) }, + { FUNC(bssid_blacklist) }, /* deprecated alias for bssid_ignore */ + { FUNC(bssid_whitelist) }, /* deprecated alias for bssid_accept */ { FUNC_KEY(psk) }, { INT(mem_only_psk) }, { STR_KEY(sae_password) }, @@ -2763,8 +2817,8 @@ void wpa_config_free_ssid(struct wpa_ssid *ssid) os_free(ssid->freq_list); os_free(ssid->bgscan); os_free(ssid->p2p_client_list); - os_free(ssid->bssid_blacklist); - os_free(ssid->bssid_whitelist); + os_free(ssid->bssid_ignore); + os_free(ssid->bssid_accept); #ifdef CONFIG_HT_OVERRIDES os_free(ssid->ht_mcs); #endif /* CONFIG_HT_OVERRIDES */ diff --git a/wpa_supplicant/config_file.c b/wpa_supplicant/config_file.c index 6f02ad32f..fd6275e22 100644 --- a/wpa_supplicant/config_file.c +++ b/wpa_supplicant/config_file.c @@ -767,8 +767,8 @@ static void wpa_config_write_network(FILE *f, struct wpa_ssid *ssid) INT(scan_ssid); write_bssid(f, ssid); write_bssid_hint(f, ssid); - write_str(f, "bssid_blacklist", ssid); - write_str(f, "bssid_whitelist", ssid); + write_str(f, "bssid_ignore", ssid); + write_str(f, "bssid_accept", ssid); write_psk(f, ssid); INT(mem_only_psk); STR(sae_password); diff --git a/wpa_supplicant/config_ssid.h b/wpa_supplicant/config_ssid.h index b4fdc8a17..3f7b31480 100644 --- a/wpa_supplicant/config_ssid.h +++ b/wpa_supplicant/config_ssid.h @@ -153,16 +153,16 @@ struct wpa_ssid { u8 bssid[ETH_ALEN]; /** - * bssid_blacklist - List of inacceptable BSSIDs + * bssid_ignore - List of inacceptable BSSIDs */ - u8 *bssid_blacklist; - size_t num_bssid_blacklist; + u8 *bssid_ignore; + size_t num_bssid_ignore; /** - * bssid_blacklist - List of acceptable BSSIDs + * bssid_accept - List of acceptable BSSIDs */ - u8 *bssid_whitelist; - size_t num_bssid_whitelist; + u8 *bssid_accept; + size_t num_bssid_accept; /** * bssid_set - Whether BSSID is configured for this network diff --git a/wpa_supplicant/dbus/dbus_new_handlers.c b/wpa_supplicant/dbus/dbus_new_handlers.c index 445434cf2..d8ee36cf9 100644 --- a/wpa_supplicant/dbus/dbus_new_handlers.c +++ b/wpa_supplicant/dbus/dbus_new_handlers.c @@ -138,7 +138,9 @@ DBusMessage * wpas_dbus_error_no_memory(DBusMessage *message) static const char * const dont_quote[] = { "key_mgmt", "proto", "pairwise", "auth_alg", "group", "eap", "bssid", "scan_freq", "freq_list", "scan_ssid", "bssid_hint", - "bssid_blacklist", "bssid_whitelist", "group_mgmt", + "bssid_ignore", "bssid_accept", /* deprecated aliases */ + "bssid_blacklist", "bssid_whitelist", + "group_mgmt", "ignore_broadcast_ssid", #ifdef CONFIG_MESH "mesh_basic_rates", diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c index aadb05409..d321cb2e2 100644 --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c @@ -1217,23 +1217,23 @@ static bool wpa_scan_res_ok(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid, return false; } - /* check blacklist */ - if (ssid->num_bssid_blacklist && - addr_in_list(bss->bssid, ssid->bssid_blacklist, - ssid->num_bssid_blacklist)) { + /* check the list of BSSIDs to ignore */ + if (ssid->num_bssid_ignore && + addr_in_list(bss->bssid, ssid->bssid_ignore, + ssid->num_bssid_ignore)) { if (debug_print) wpa_dbg(wpa_s, MSG_DEBUG, - " skip - BSSID blacklisted"); + " skip - BSSID configured to be ignored"); return false; } - /* if there is a whitelist, only accept those APs */ - if (ssid->num_bssid_whitelist && - !addr_in_list(bss->bssid, ssid->bssid_whitelist, - ssid->num_bssid_whitelist)) { + /* if there is a list of accepted BSSIDs, only accept those APs */ + if (ssid->num_bssid_accept && + !addr_in_list(bss->bssid, ssid->bssid_accept, + ssid->num_bssid_accept)) { if (debug_print) wpa_dbg(wpa_s, MSG_DEBUG, - " skip - BSSID not in whitelist"); + " skip - BSSID not in list of accepted values"); return false; } diff --git a/wpa_supplicant/wpa_cli.c b/wpa_supplicant/wpa_cli.c index a5f7ef353..f5bda1abd 100644 --- a/wpa_supplicant/wpa_cli.c +++ b/wpa_supplicant/wpa_cli.c @@ -1408,8 +1408,8 @@ static int wpa_cli_cmd_get_network(struct wpa_ctrl *ctrl, int argc, static const char *network_fields[] = { - "ssid", "scan_ssid", "bssid", "bssid_blacklist", - "bssid_whitelist", "psk", "proto", "key_mgmt", + "ssid", "scan_ssid", "bssid", "bssid_ignore", + "bssid_accept", "psk", "proto", "key_mgmt", "bg_scan_period", "pairwise", "group", "auth_alg", "scan_freq", "freq_list", "max_oper_chwidth", "ht40", "vht", "vht_center_freq1", "vht_center_freq2", "ht", "edmg", diff --git a/wpa_supplicant/wpa_supplicant.conf b/wpa_supplicant/wpa_supplicant.conf index 7a9eac139..9d5de8591 100644 --- a/wpa_supplicant/wpa_supplicant.conf +++ b/wpa_supplicant/wpa_supplicant.conf @@ -2009,12 +2009,12 @@ network={ key_mgmt=NONE } -# Example configuration blacklisting two APs - these will be ignored +# Example configuration ignoring two APs - these will be ignored # for this network. network={ ssid="example" psk="very secret passphrase" - bssid_blacklist=02:11:22:33:44:55 02:22:aa:44:55:66 + bssid_ignore=02:11:22:33:44:55 02:22:aa:44:55:66 } # Example configuration limiting AP selection to a specific set of APs; @@ -2022,7 +2022,7 @@ network={ network={ ssid="example" psk="very secret passphrase" - bssid_whitelist=02:55:ae:bc:00:00/ff:ff:ff:ff:00:00 00:00:77:66:55:44/00:00:ff:ff:ff:ff + bssid_accept=02:55:ae:bc:00:00/ff:ff:ff:ff:00:00 00:00:77:66:55:44/00:00:ff:ff:ff:ff } # Example config file that will only scan on channel 36.