summaryrefslogtreecommitdiff
path: root/libnm
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2015-06-03 09:15:24 +0200
committerBeniamino Galvani <bgalvani@redhat.com>2015-06-09 18:23:19 +0200
commit04d5804dd5826cc36398027a023b0e639a54bd26 (patch)
treef3b03af96f8bf10d798dbe6c82daa113af476700 /libnm
parentbd4e1f37f88baddc743b79b68886112882deca9a (diff)
downloadNetworkManager-04d5804dd5826cc36398027a023b0e639a54bd26.tar.gz
nm-manager: add 'metered' property
This introduces a global metered property which makes easier for clients to obtain the metered status of the current primary connection.
Diffstat (limited to 'libnm')
-rw-r--r--libnm/nm-client.c16
-rw-r--r--libnm/nm-client.h1
-rw-r--r--libnm/nm-manager.c19
-rw-r--r--libnm/nm-manager.h1
4 files changed, 37 insertions, 0 deletions
diff --git a/libnm/nm-client.c b/libnm/nm-client.c
index e0a2a7b4f4..3d683a1c67 100644
--- a/libnm/nm-client.c
+++ b/libnm/nm-client.c
@@ -76,6 +76,7 @@ enum {
PROP_CONNECTIONS,
PROP_HOSTNAME,
PROP_CAN_MODIFY,
+ PROP_METERED,
LAST_PROP
};
@@ -1871,6 +1872,7 @@ get_property (GObject *object, guint prop_id,
case PROP_PRIMARY_CONNECTION:
case PROP_ACTIVATING_CONNECTION:
case PROP_DEVICES:
+ case PROP_METERED:
g_object_get_property (G_OBJECT (NM_CLIENT_GET_PRIVATE (object)->manager),
pspec->name, value);
break;
@@ -2143,6 +2145,20 @@ nm_client_class_init (NMClientClass *client_class)
G_PARAM_READABLE |
G_PARAM_STATIC_STRINGS));
+ /**
+ * NMClient:metered:
+ *
+ * Whether the connectivity is metered.
+ *
+ * Since: 1.2
+ **/
+ g_object_class_install_property
+ (object_class, PROP_METERED,
+ g_param_spec_uint (NM_CLIENT_METERED, "", "",
+ 0, G_MAXUINT32, NM_METERED_UNKNOWN,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
+
/* signals */
/**
diff --git a/libnm/nm-client.h b/libnm/nm-client.h
index 619ad8585f..fc309fa1a0 100644
--- a/libnm/nm-client.h
+++ b/libnm/nm-client.h
@@ -56,6 +56,7 @@ G_BEGIN_DECLS
#define NM_CLIENT_CONNECTIONS "connections"
#define NM_CLIENT_HOSTNAME "hostname"
#define NM_CLIENT_CAN_MODIFY "can-modify"
+#define NM_CLIENT_METERED "metered"
#define NM_CLIENT_DEVICE_ADDED "device-added"
#define NM_CLIENT_DEVICE_REMOVED "device-removed"
diff --git a/libnm/nm-manager.c b/libnm/nm-manager.c
index 003d6b8755..2fd40273a3 100644
--- a/libnm/nm-manager.c
+++ b/libnm/nm-manager.c
@@ -64,6 +64,7 @@ typedef struct {
NMConnectivityState connectivity;
NMActiveConnection *primary_connection;
NMActiveConnection *activating_connection;
+ NMMetered metered;
GCancellable *perm_call_cancellable;
GHashTable *permissions;
@@ -102,6 +103,7 @@ enum {
PROP_PRIMARY_CONNECTION,
PROP_ACTIVATING_CONNECTION,
PROP_DEVICES,
+ PROP_METERED,
LAST_PROP
};
@@ -179,6 +181,7 @@ init_dbus (NMObject *object)
{ NM_MANAGER_PRIMARY_CONNECTION, &priv->primary_connection, NULL, NM_TYPE_ACTIVE_CONNECTION },
{ NM_MANAGER_ACTIVATING_CONNECTION, &priv->activating_connection, NULL, NM_TYPE_ACTIVE_CONNECTION },
{ NM_MANAGER_DEVICES, &priv->devices, NULL, NM_TYPE_DEVICE, "device" },
+ { NM_MANAGER_METERED, &priv->metered },
{ NULL },
};
@@ -1537,6 +1540,9 @@ get_property (GObject *object,
case PROP_DEVICES:
g_value_take_boxed (value, _nm_utils_copy_object_array (nm_manager_get_devices (self)));
break;
+ case PROP_METERED:
+ g_value_set_uint (value, priv->metered);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1669,6 +1675,19 @@ nm_manager_class_init (NMManagerClass *manager_class)
G_TYPE_PTR_ARRAY,
G_PARAM_READABLE |
G_PARAM_STATIC_STRINGS));
+ /**
+ * NMManager:metered:
+ *
+ * Whether the connectivity is metered.
+ *
+ * Since: 1.2
+ **/
+ g_object_class_install_property
+ (object_class, PROP_METERED,
+ g_param_spec_uint (NM_MANAGER_METERED, "", "",
+ 0, G_MAXUINT32, NM_METERED_UNKNOWN,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
/* signals */
diff --git a/libnm/nm-manager.h b/libnm/nm-manager.h
index ca9f7dd60b..8d04a060f6 100644
--- a/libnm/nm-manager.h
+++ b/libnm/nm-manager.h
@@ -50,6 +50,7 @@ G_BEGIN_DECLS
#define NM_MANAGER_PRIMARY_CONNECTION "primary-connection"
#define NM_MANAGER_ACTIVATING_CONNECTION "activating-connection"
#define NM_MANAGER_DEVICES "devices"
+#define NM_MANAGER_METERED "metered"
typedef struct {
NMObject parent;