mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-04 04:00:17 +01:00
libnm: add Wi-Fi MAC address randomization property
This commit is contained in:
parent
325faa2379
commit
0222822134
4 changed files with 65 additions and 0 deletions
|
|
@ -59,6 +59,7 @@ typedef struct {
|
|||
GSList *seen_bssids;
|
||||
gboolean hidden;
|
||||
guint32 powersave;
|
||||
NMSettingMacRandomization mac_address_randomization;
|
||||
} NMSettingWirelessPrivate;
|
||||
|
||||
enum {
|
||||
|
|
@ -77,6 +78,7 @@ enum {
|
|||
PROP_SEEN_BSSIDS,
|
||||
PROP_HIDDEN,
|
||||
PROP_POWERSAVE,
|
||||
PROP_MAC_ADDRESS_RANDOMIZATION,
|
||||
|
||||
LAST_PROP
|
||||
};
|
||||
|
|
@ -617,6 +619,23 @@ nm_setting_wireless_get_powersave (NMSettingWireless *setting)
|
|||
return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->powersave;
|
||||
}
|
||||
|
||||
/**
|
||||
* nm_setting_wireless_get_mac_address_randomization:
|
||||
* @setting: the #NMSettingWireless
|
||||
*
|
||||
* Returns: the #NMSettingWireless:mac-address-randomization property of the
|
||||
* setting
|
||||
*
|
||||
* Since: 1.2
|
||||
**/
|
||||
NMSettingMacRandomization
|
||||
nm_setting_wireless_get_mac_address_randomization (NMSettingWireless *setting)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_SETTING_WIRELESS (setting), 0);
|
||||
|
||||
return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->mac_address_randomization;
|
||||
}
|
||||
|
||||
/**
|
||||
* nm_setting_wireless_add_seen_bssid:
|
||||
* @setting: the #NMSettingWireless
|
||||
|
|
@ -935,6 +954,9 @@ set_property (GObject *object, guint prop_id,
|
|||
case PROP_POWERSAVE:
|
||||
priv->powersave = g_value_get_uint (value);
|
||||
break;
|
||||
case PROP_MAC_ADDRESS_RANDOMIZATION:
|
||||
priv->mac_address_randomization = g_value_get_uint (value);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
|
|
@ -991,6 +1013,9 @@ get_property (GObject *object, guint prop_id,
|
|||
case PROP_POWERSAVE:
|
||||
g_value_set_uint (value, nm_setting_wireless_get_powersave (setting));
|
||||
break;
|
||||
case PROP_MAC_ADDRESS_RANDOMIZATION:
|
||||
g_value_set_uint (value, nm_setting_wireless_get_mac_address_randomization (setting));
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
|
|
@ -1362,6 +1387,24 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_class)
|
|||
G_PARAM_READWRITE |
|
||||
G_PARAM_STATIC_STRINGS));
|
||||
|
||||
/**
|
||||
* NMSettingWireless:mac-address-randomization:
|
||||
*
|
||||
* One of %NM_SETTING_MAC_RANDOMIZATION_DEFAULT (never randomize unless
|
||||
* the user has set a global default to randomize and the supplicant
|
||||
* supports randomization), %NM_SETTING_MAC_RANDOMIZATION_NEVER (never
|
||||
* randomize the MAC address), or %NM_SETTING_MAC_RANDOMIZATION_ALWAYS
|
||||
* (always randomize the MAC address).
|
||||
*
|
||||
* Since: 1.2
|
||||
**/
|
||||
g_object_class_install_property
|
||||
(object_class, PROP_MAC_ADDRESS_RANDOMIZATION,
|
||||
g_param_spec_uint (NM_SETTING_WIRELESS_MAC_ADDRESS_RANDOMIZATION, "", "",
|
||||
0, G_MAXUINT32, NM_SETTING_MAC_RANDOMIZATION_DEFAULT,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_STATIC_STRINGS));
|
||||
|
||||
/* Compatibility for deprecated property */
|
||||
/* ---ifcfg-rh---
|
||||
* property: security
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ G_BEGIN_DECLS
|
|||
#define NM_SETTING_WIRELESS_SEEN_BSSIDS "seen-bssids"
|
||||
#define NM_SETTING_WIRELESS_HIDDEN "hidden"
|
||||
#define NM_SETTING_WIRELESS_POWERSAVE "powersave"
|
||||
#define NM_SETTING_WIRELESS_MAC_ADDRESS_RANDOMIZATION "mac-address-randomization"
|
||||
|
||||
/**
|
||||
* NM_SETTING_WIRELESS_MODE_ADHOC:
|
||||
|
|
@ -121,6 +122,9 @@ gboolean nm_setting_wireless_get_hidden (NMSettingWireless
|
|||
NM_AVAILABLE_IN_1_2
|
||||
guint32 nm_setting_wireless_get_powersave (NMSettingWireless *setting);
|
||||
|
||||
NM_AVAILABLE_IN_1_2
|
||||
NMSettingMacRandomization nm_setting_wireless_get_mac_address_randomization (NMSettingWireless *setting);
|
||||
|
||||
gboolean nm_setting_wireless_add_seen_bssid (NMSettingWireless *setting,
|
||||
const char *bssid);
|
||||
|
||||
|
|
|
|||
|
|
@ -131,6 +131,22 @@ typedef enum {
|
|||
} NMSettingCompareFlags;
|
||||
|
||||
|
||||
/**
|
||||
* NMSettingMacRandomization:
|
||||
* @NM_SETTING_MAC_RANDOMIZATION_DEFAULT: the default value, which unless
|
||||
* overridden by user-controlled defaults configuration, is "never".
|
||||
* @NM_SETTING_MAC_RANDOMIZATION_NEVER: the device's MAC address is always used.
|
||||
* @NM_SETTING_MAC_RANDOMIZATION_ALWAYS: a random MAC address is used.
|
||||
*
|
||||
* Controls if and how the MAC address of a device is randomzied.
|
||||
**/
|
||||
typedef enum {
|
||||
NM_SETTING_MAC_RANDOMIZATION_DEFAULT = 0,
|
||||
NM_SETTING_MAC_RANDOMIZATION_NEVER,
|
||||
NM_SETTING_MAC_RANDOMIZATION_ALWAYS,
|
||||
} NMSettingMacRandomization;
|
||||
|
||||
|
||||
/**
|
||||
* NMSetting:
|
||||
*
|
||||
|
|
|
|||
|
|
@ -891,11 +891,13 @@ global:
|
|||
nm_setting_ip_config_has_dns_options;
|
||||
nm_setting_ip_config_remove_dns_option;
|
||||
nm_setting_ip_config_remove_dns_option_by_value;
|
||||
nm_setting_mac_randomization_get_type;
|
||||
nm_setting_vpn_get_timeout;
|
||||
nm_setting_wired_get_wake_on_lan;
|
||||
nm_setting_wired_get_wake_on_lan_password;
|
||||
nm_setting_wired_wake_on_lan_get_type;
|
||||
nm_setting_wireless_get_powersave;
|
||||
nm_setting_wireless_get_mac_address_randomization;
|
||||
nm_utils_bond_mode_int_to_string;
|
||||
nm_utils_bond_mode_string_to_int;
|
||||
nm_utils_enum_from_str;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue