GSList *seen_bssids;
gboolean hidden;
guint32 powersave;
+ NMSettingMacRandomization mac_address_randomization;
} NMSettingWirelessPrivate;
enum {
PROP_SEEN_BSSIDS,
PROP_HIDDEN,
PROP_POWERSAVE,
+ PROP_MAC_ADDRESS_RANDOMIZATION,
LAST_PROP
};
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
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;
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;
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
#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:
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);
} 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:
*
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;