diff --git a/introspection/nm-manager.xml b/introspection/nm-manager.xml
index 05bcc99a3..a9bb6dcf1 100644
--- a/introspection/nm-manager.xml
+++ b/introspection/nm-manager.xml
@@ -327,6 +327,14 @@
+
+
+ The connection type of the "primary" active connection being
+ used to access the network. This is the same as the Type
+ property on the object indicated by PrimaryConnection.
+
+
+
The object path of an active connection that is currently
diff --git a/src/nm-active-connection.c b/src/nm-active-connection.c
index d91f46266..c3df3a5b7 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 aa2224484..9012e0be2 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 : "/");
@@ -5162,6 +5169,14 @@ nm_manager_class_init (NMManagerClass *manager_class)
G_PARAM_READABLE |
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, "", "",
diff --git a/src/nm-manager.h b/src/nm-manager.h
index 6413c7144..f62351615 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"