mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-09-06 09:04:55 +00:00
ifcfg-rh: fix interpreting missing MAC_ADDRESS_RANDOMIZATION as permanent address
With commit4f6c91d696
, we aimed to enable mac-address-randomization by default for Wi-Fi. That however is not possible by default because it breaks various scenarios. Also, later wifi.mac-address-randomization was deprecated in favor of wifi.cloned-mac-address setting. Both wifi.mac-address-randomization and wifi.cloned-mac-address support global default values, so it is wrong to read a missing MAC_ADDRESS_RANDOMIZATION setting as "NEVER" -- which due to normalization also results in cloned-mac-address=permanent. See also commit46d53e1101
which does something similar for keyfile. This bug also prevents a user from clearing the cloned-mac-address: $ nmcli connection show "$CONN" ... 802-11-wireless.cloned-mac-address: permanent 802-11-wireless.mac-address-randomization: never ... $ nmcli connection modify "$CONN: wifi.cloned-mac-address '' # ^ takes no effect As workaround, you also need to clear mac-address-randomization: $ nmcli connection modify "$CONN: wifi.cloned-mac-address '' \ wifi.mac-address-randomization default https://mail.gnome.org/archives/networkmanager-list/2017-January/msg00060.html
This commit is contained in:
parent
dbd365c3f9
commit
27cba47957
|
@ -3387,7 +3387,7 @@ make_wireless_setting (shvarFile *ifcfg,
|
|||
const char *cvalue;
|
||||
char *value = NULL;
|
||||
gint64 chan = 0;
|
||||
NMSettingMacRandomization mac_randomization = NM_SETTING_MAC_RANDOMIZATION_NEVER;
|
||||
NMSettingMacRandomization mac_randomization;
|
||||
NMSettingWirelessPowersave powersave = NM_SETTING_WIRELESS_POWERSAVE_DEFAULT;
|
||||
|
||||
s_wireless = NM_SETTING_WIRELESS (nm_setting_wireless_new ());
|
||||
|
@ -3587,7 +3587,7 @@ make_wireless_setting (shvarFile *ifcfg,
|
|||
}
|
||||
g_free (value);
|
||||
} else
|
||||
mac_randomization = NM_SETTING_MAC_RANDOMIZATION_NEVER;
|
||||
mac_randomization = NM_SETTING_MAC_RANDOMIZATION_DEFAULT;
|
||||
|
||||
g_object_set (s_wireless,
|
||||
NM_SETTING_WIRELESS_MAC_ADDRESS_RANDOMIZATION,
|
||||
|
|
|
@ -941,17 +941,16 @@ write_wireless_setting (NMConnection *connection,
|
|||
break;
|
||||
}
|
||||
|
||||
svUnsetValue (ifcfg, "MAC_ADDRESS_RANDOMIZATION");
|
||||
switch (nm_setting_wireless_get_mac_address_randomization (s_wireless)) {
|
||||
case NM_SETTING_MAC_RANDOMIZATION_DEFAULT:
|
||||
svSetValueString (ifcfg, "MAC_ADDRESS_RANDOMIZATION", "default");
|
||||
case NM_SETTING_MAC_RANDOMIZATION_NEVER:
|
||||
svSetValueString (ifcfg, "MAC_ADDRESS_RANDOMIZATION", "never");
|
||||
break;
|
||||
case NM_SETTING_MAC_RANDOMIZATION_ALWAYS:
|
||||
svSetValueString (ifcfg, "MAC_ADDRESS_RANDOMIZATION", "always");
|
||||
break;
|
||||
case NM_SETTING_MAC_RANDOMIZATION_DEFAULT:
|
||||
default:
|
||||
case NM_SETTING_MAC_RANDOMIZATION_NEVER:
|
||||
svSetValueString (ifcfg, "MAC_ADDRESS_RANDOMIZATION", "never");
|
||||
svSetValueString (ifcfg, "MAC_ADDRESS_RANDOMIZATION", "default");
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -8998,7 +8998,7 @@ int main (int argc, char **argv)
|
|||
nmtst_add_test_func (TPATH "wifi/read-mac-random-always", test_read_wifi_mac_random, "always", GINT_TO_POINTER (NM_SETTING_MAC_RANDOMIZATION_ALWAYS));
|
||||
nmtst_add_test_func (TPATH "wifi/read-mac-random-never", test_read_wifi_mac_random, "never", GINT_TO_POINTER (NM_SETTING_MAC_RANDOMIZATION_NEVER));
|
||||
nmtst_add_test_func (TPATH "wifi/read-mac-random-default", test_read_wifi_mac_random, "default", GINT_TO_POINTER (NM_SETTING_MAC_RANDOMIZATION_DEFAULT));
|
||||
nmtst_add_test_func (TPATH "wifi/read-mac-random-missing", test_read_wifi_mac_random, "missing", GINT_TO_POINTER (NM_SETTING_MAC_RANDOMIZATION_NEVER));
|
||||
nmtst_add_test_func (TPATH "wifi/read-mac-random-missing", test_read_wifi_mac_random, "missing", GINT_TO_POINTER (NM_SETTING_MAC_RANDOMIZATION_DEFAULT));
|
||||
|
||||
nmtst_add_test_func (TPATH "wifi/write-mac-random-always", test_write_wifi_mac_random, "always", GINT_TO_POINTER (NM_SETTING_MAC_RANDOMIZATION_ALWAYS), "always");
|
||||
nmtst_add_test_func (TPATH "wifi/write-mac-random-never", test_write_wifi_mac_random, "never", GINT_TO_POINTER (NM_SETTING_MAC_RANDOMIZATION_NEVER), "never");
|
||||
|
|
Loading…
Reference in a new issue