summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRyan Lortie <desrt@desrt.ca>2014-10-23 13:56:52 -0400
committerDan Williams <dcbw@redhat.com>2014-10-23 13:39:08 -0500
commit07dba25404362fcfd21a5a4f76ee1f09c7422cf2 (patch)
tree25b7d564122df7beafaf34fbfa3d76c69f98b410 /src
parent0bc11cb7301972f771d85e5fc1737187d7453697 (diff)
downloadNetworkManager-07dba25404362fcfd21a5a4f76ee1f09c7422cf2.tar.gz
core: add PrimaryConnectionType property to NMManager (bgo #739080)
This will provide an extremely easy way for applications to find out what type of connection the system is currently using. They might want to do this to avoid using data if a phone is on a 3G connection, for example. Having this as a separate property provides at least two advantages: 1) it reduces code complexity for those wanting only this one simple piece of information 2) we could allow access to this property (but nothing else) to privilege-separated applications in the future This patch adds the missing nm_active_connection_get_connection_type() which was in the header file but never actually implemented. https://bugzilla.gnome.org/show_bug.cgi?id=739080
Diffstat (limited to 'src')
-rw-r--r--src/nm-active-connection.c11
-rw-r--r--src/nm-manager.c15
-rw-r--r--src/nm-manager.h1
3 files changed, 27 insertions, 0 deletions
diff --git a/src/nm-active-connection.c b/src/nm-active-connection.c
index d91f462663..c3df3a5b79 100644
--- a/src/nm-active-connection.c
+++ b/src/nm-active-connection.c
@@ -200,6 +200,17 @@ nm_active_connection_get_connection (NMActiveConnection *self)
return NM_ACTIVE_CONNECTION_GET_PRIVATE (self)->connection;
}
+const char *
+nm_active_connection_get_connection_type (NMActiveConnection *self)
+{
+ NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (self);
+
+ if (priv->connection == NULL)
+ return NULL;
+
+ return nm_connection_get_connection_type (priv->connection);
+}
+
void
nm_active_connection_set_connection (NMActiveConnection *self,
NMConnection *connection)
diff --git a/src/nm-manager.c b/src/nm-manager.c
index aa2224484e..9012e0be2e 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -237,6 +237,7 @@ enum {
PROP_ACTIVE_CONNECTIONS,
PROP_CONNECTIVITY,
PROP_PRIMARY_CONNECTION,
+ PROP_PRIMARY_CONNECTION_TYPE,
PROP_ACTIVATING_CONNECTION,
PROP_DEVICES,
@@ -4270,6 +4271,7 @@ policy_default_device_changed (GObject *object, GParamSpec *pspec, gpointer user
priv->primary_connection = ac ? g_object_ref (ac) : NULL;
nm_log_dbg (LOGD_CORE, "PrimaryConnection now %s", ac ? nm_active_connection_get_id (ac) : "(none)");
g_object_notify (G_OBJECT (self), NM_MANAGER_PRIMARY_CONNECTION);
+ g_object_notify (G_OBJECT (self), NM_MANAGER_PRIMARY_CONNECTION_TYPE);
}
}
@@ -4862,6 +4864,7 @@ get_property (GObject *object, guint prop_id,
GSList *iter;
GPtrArray *array;
const char *path;
+ const char *type;
switch (prop_id) {
case PROP_VERSION:
@@ -4911,6 +4914,10 @@ get_property (GObject *object, guint prop_id,
path = priv->primary_connection ? nm_active_connection_get_path (priv->primary_connection) : NULL;
g_value_set_boxed (value, path ? path : "/");
break;
+ case PROP_PRIMARY_CONNECTION_TYPE:
+ type = priv->primary_connection ? nm_active_connection_get_connection_type (priv->primary_connection) : NULL;
+ g_value_set_string (value, type ? type : "");
+ break;
case PROP_ACTIVATING_CONNECTION:
path = priv->activating_connection ? nm_active_connection_get_path (priv->activating_connection) : NULL;
g_value_set_boxed (value, path ? path : "/");
@@ -5163,6 +5170,14 @@ nm_manager_class_init (NMManagerClass *manager_class)
G_PARAM_STATIC_STRINGS));
g_object_class_install_property
+ (object_class, PROP_PRIMARY_CONNECTION_TYPE,
+ g_param_spec_string (NM_MANAGER_PRIMARY_CONNECTION_TYPE, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
+
+
+ g_object_class_install_property
(object_class, PROP_ACTIVATING_CONNECTION,
g_param_spec_boxed (NM_MANAGER_ACTIVATING_CONNECTION, "", "",
DBUS_TYPE_G_OBJECT_PATH,
diff --git a/src/nm-manager.h b/src/nm-manager.h
index 6413c71449..f623516159 100644
--- a/src/nm-manager.h
+++ b/src/nm-manager.h
@@ -48,6 +48,7 @@
#define NM_MANAGER_ACTIVE_CONNECTIONS "active-connections"
#define NM_MANAGER_CONNECTIVITY "connectivity"
#define NM_MANAGER_PRIMARY_CONNECTION "primary-connection"
+#define NM_MANAGER_PRIMARY_CONNECTION_TYPE "primary-connection-type"
#define NM_MANAGER_ACTIVATING_CONNECTION "activating-connection"
#define NM_MANAGER_DEVICES "devices"