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"