summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2014-10-30 09:49:38 -0500
committerDan Williams <dcbw@redhat.com>2015-01-21 14:31:04 -0600
commit5293683e4a01df1dc47e884ead3a6c6c9493b1f9 (patch)
tree4f997e3efe489fa1f5dddef7392b0383f7f34c8c
parent7bdc6f5de53584414ccec3be47f16d909ae92bb6 (diff)
downloadNetworkManager-5293683e4a01df1dc47e884ead3a6c6c9493b1f9.tar.gz
libnm/libnm-util: add Wi-Fi 'powersave' property
-rw-r--r--libnm-core/nm-setting-wireless.c41
-rw-r--r--libnm-core/nm-setting-wireless.h3
-rw-r--r--libnm-util/libnm-util.ver1
-rw-r--r--libnm-util/nm-setting-wireless.c41
-rw-r--r--libnm-util/nm-setting-wireless.h3
-rw-r--r--libnm/libnm.ver1
6 files changed, 90 insertions, 0 deletions
diff --git a/libnm-core/nm-setting-wireless.c b/libnm-core/nm-setting-wireless.c
index f8d22c2d00..075af10224 100644
--- a/libnm-core/nm-setting-wireless.c
+++ b/libnm-core/nm-setting-wireless.c
@@ -60,6 +60,7 @@ typedef struct {
guint32 mtu;
GSList *seen_bssids;
gboolean hidden;
+ guint32 powersave;
} NMSettingWirelessPrivate;
enum {
@@ -77,6 +78,7 @@ enum {
PROP_MTU,
PROP_SEEN_BSSIDS,
PROP_HIDDEN,
+ PROP_POWERSAVE,
LAST_PROP
};
@@ -602,6 +604,22 @@ nm_setting_wireless_get_hidden (NMSettingWireless *setting)
}
/**
+ * nm_setting_wireless_get_powersave:
+ * @setting: the #NMSettingWireless
+ *
+ * Returns: the #NMSettingWireless:powersave property of the setting
+ *
+ * Since: 1.2
+ **/
+guint32
+nm_setting_wireless_get_powersave (NMSettingWireless *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_WIRELESS (setting), 0);
+
+ return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->powersave;
+}
+
+/**
* nm_setting_wireless_add_seen_bssid:
* @setting: the #NMSettingWireless
* @bssid: the new BSSID to add to the list
@@ -916,6 +934,9 @@ set_property (GObject *object, guint prop_id,
case PROP_HIDDEN:
priv->hidden = g_value_get_boolean (value);
break;
+ case PROP_POWERSAVE:
+ priv->powersave = g_value_get_uint (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -969,6 +990,9 @@ get_property (GObject *object, guint prop_id,
case PROP_HIDDEN:
g_value_set_boolean (value, nm_setting_wireless_get_hidden (setting));
break;
+ case PROP_POWERSAVE:
+ g_value_set_uint (value, nm_setting_wireless_get_powersave (setting));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1315,6 +1339,23 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_class)
G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS));
+ /**
+ * NMSettingWireless:powersave:
+ *
+ * If set to %FALSE, Wi-Fi power saving behavior is disabled. If set to
+ * %TRUE, Wi-Fi power saving behavior is enabled. All other values are
+ * reserved. Note that even though only boolean values are allowed, the
+ * property type is an unsigned integer to allow for future expansion.
+ *
+ * Since: 1.2
+ **/
+ g_object_class_install_property
+ (object_class, PROP_POWERSAVE,
+ g_param_spec_uint (NM_SETTING_WIRELESS_POWERSAVE, "", "",
+ 0, G_MAXUINT32, 0,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
+
/* Compatibility for deprecated property */
/* ---ifcfg-rh---
* property: security
diff --git a/libnm-core/nm-setting-wireless.h b/libnm-core/nm-setting-wireless.h
index 98fa98dc6c..46ae6e6dba 100644
--- a/libnm-core/nm-setting-wireless.h
+++ b/libnm-core/nm-setting-wireless.h
@@ -55,6 +55,7 @@ G_BEGIN_DECLS
#define NM_SETTING_WIRELESS_MTU "mtu"
#define NM_SETTING_WIRELESS_SEEN_BSSIDS "seen-bssids"
#define NM_SETTING_WIRELESS_HIDDEN "hidden"
+#define NM_SETTING_WIRELESS_POWERSAVE "powersave"
/**
* NM_SETTING_WIRELESS_MODE_ADHOC:
@@ -118,6 +119,8 @@ void nm_setting_wireless_clear_mac_blacklist_items (NMSettingWire
guint32 nm_setting_wireless_get_mtu (NMSettingWireless *setting);
gboolean nm_setting_wireless_get_hidden (NMSettingWireless *setting);
+NM_AVAILABLE_IN_1_2
+guint32 nm_setting_wireless_get_powersave (NMSettingWireless *setting);
gboolean nm_setting_wireless_add_seen_bssid (NMSettingWireless *setting,
const char *bssid);
diff --git a/libnm-util/libnm-util.ver b/libnm-util/libnm-util.ver
index 9d78e5024d..ae34142073 100644
--- a/libnm-util/libnm-util.ver
+++ b/libnm-util/libnm-util.ver
@@ -562,6 +562,7 @@ global:
nm_setting_wireless_get_mtu;
nm_setting_wireless_get_num_mac_blacklist_items;
nm_setting_wireless_get_num_seen_bssids;
+ nm_setting_wireless_get_powersave;
nm_setting_wireless_get_rate;
nm_setting_wireless_get_security;
nm_setting_wireless_get_seen_bssid;
diff --git a/libnm-util/nm-setting-wireless.c b/libnm-util/nm-setting-wireless.c
index 99f4c9b14c..84f1c77c72 100644
--- a/libnm-util/nm-setting-wireless.c
+++ b/libnm-util/nm-setting-wireless.c
@@ -87,6 +87,7 @@ typedef struct {
GSList *seen_bssids;
char *security;
gboolean hidden;
+ guint32 powersave;
} NMSettingWirelessPrivate;
enum {
@@ -105,6 +106,7 @@ enum {
PROP_SEEN_BSSIDS,
PROP_SEC,
PROP_HIDDEN,
+ PROP_POWERSAVE,
LAST_PROP
};
@@ -662,6 +664,22 @@ nm_setting_wireless_get_hidden (NMSettingWireless *setting)
}
/**
+ * nm_setting_wireless_get_powersave:
+ * @setting: the #NMSettingWireless
+ *
+ * Returns: the #NMSettingWireless:powersave property of the setting
+ *
+ * Since: 1.2
+ **/
+guint32
+nm_setting_wireless_get_powersave (NMSettingWireless *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_WIRELESS (setting), 0);
+
+ return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->powersave;
+}
+
+/**
* nm_setting_wireless_add_seen_bssid:
* @setting: the #NMSettingWireless
* @bssid: the new BSSID to add to the list
@@ -953,6 +971,9 @@ set_property (GObject *object, guint prop_id,
case PROP_HIDDEN:
priv->hidden = g_value_get_boolean (value);
break;
+ case PROP_POWERSAVE:
+ priv->powersave = g_value_get_uint (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1008,6 +1029,9 @@ get_property (GObject *object, guint prop_id,
case PROP_HIDDEN:
g_value_set_boolean (value, nm_setting_wireless_get_hidden (setting));
break;
+ case PROP_POWERSAVE:
+ g_value_set_uint (value, nm_setting_wireless_get_powersave (setting));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1244,4 +1268,21 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_class)
FALSE,
G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS));
+
+ /**
+ * NMSettingWireless:powersave:
+ *
+ * If set to %FALSE, Wi-Fi power saving behavior is disabled. If set to
+ * %TRUE, Wi-Fi power saving behavior is enabled. All other values are
+ * reserved. Note that even though only boolean values are allowed, the
+ * property type is an unsigned integer to allow for future expansion.
+ *
+ * Since: 1.2
+ **/
+ g_object_class_install_property
+ (object_class, PROP_POWERSAVE,
+ g_param_spec_uint (NM_SETTING_WIRELESS_POWERSAVE, "", "",
+ 0, G_MAXUINT32, 0,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
}
diff --git a/libnm-util/nm-setting-wireless.h b/libnm-util/nm-setting-wireless.h
index 18f78cff66..77eff73e30 100644
--- a/libnm-util/nm-setting-wireless.h
+++ b/libnm-util/nm-setting-wireless.h
@@ -73,6 +73,7 @@ GQuark nm_setting_wireless_error_quark (void);
#define NM_SETTING_WIRELESS_MTU "mtu"
#define NM_SETTING_WIRELESS_SEEN_BSSIDS "seen-bssids"
#define NM_SETTING_WIRELESS_HIDDEN "hidden"
+#define NM_SETTING_WIRELESS_POWERSAVE "powersave"
/* Deprecated */
#define NM_SETTING_WIRELESS_SEC "security"
@@ -150,6 +151,8 @@ void nm_setting_wireless_clear_mac_blacklist_items (NMSettingWire
guint32 nm_setting_wireless_get_mtu (NMSettingWireless *setting);
gboolean nm_setting_wireless_get_hidden (NMSettingWireless *setting);
+NM_AVAILABLE_IN_1_2
+guint32 nm_setting_wireless_get_powersave (NMSettingWireless *setting);
gboolean nm_setting_wireless_add_seen_bssid (NMSettingWireless *setting,
const char *bssid);
diff --git a/libnm/libnm.ver b/libnm/libnm.ver
index aba84f4a83..b56fe77321 100644
--- a/libnm/libnm.ver
+++ b/libnm/libnm.ver
@@ -705,6 +705,7 @@ global:
nm_setting_wireless_get_mtu;
nm_setting_wireless_get_num_mac_blacklist_items;
nm_setting_wireless_get_num_seen_bssids;
+ nm_setting_wireless_get_powersave;
nm_setting_wireless_get_rate;
nm_setting_wireless_get_seen_bssid;
nm_setting_wireless_get_ssid;