From ee6f684f0ac52500601ecb9badff38f43e69014f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= Date: Mon, 3 Mar 2014 15:06:11 +0100 Subject: [PATCH] libnm-glib: support 'type', 'id' properties in NMActiveConnection (rh #1061822) https://bugzilla.redhat.com/show_bug.cgi?id=1061822 --- libnm-glib/libnm-glib.ver | 2 + libnm-glib/nm-active-connection.c | 84 +++++++++++++++++++++++++++++++ libnm-glib/nm-active-connection.h | 6 +++ 3 files changed, 92 insertions(+) diff --git a/libnm-glib/libnm-glib.ver b/libnm-glib/libnm-glib.ver index 8eb17e29e7..aa6f913d04 100644 --- a/libnm-glib/libnm-glib.ver +++ b/libnm-glib/libnm-glib.ver @@ -20,11 +20,13 @@ global: nm_access_point_get_wpa_flags; nm_access_point_new; nm_active_connection_get_connection; + nm_active_connection_get_connection_type; nm_active_connection_get_default6; nm_active_connection_get_default; nm_active_connection_get_devices; nm_active_connection_get_dhcp4_config; nm_active_connection_get_dhcp6_config; + nm_active_connection_get_id; nm_active_connection_get_ip4_config; nm_active_connection_get_ip6_config; nm_active_connection_get_master; diff --git a/libnm-glib/nm-active-connection.c b/libnm-glib/nm-active-connection.c index 460a2158ae..fc4425f1e9 100644 --- a/libnm-glib/nm-active-connection.c +++ b/libnm-glib/nm-active-connection.c @@ -53,7 +53,9 @@ typedef struct { DBusGProxy *proxy; char *connection; + char *id; char *uuid; + char *type; char *specific_object; GPtrArray *devices; NMActiveConnectionState state; @@ -70,7 +72,9 @@ typedef struct { enum { PROP_0, PROP_CONNECTION, + PROP_ID, PROP_UUID, + PROP_TYPE, PROP_SPECIFIC_OBJECT, PROP_DEVICES, PROP_STATE, @@ -219,6 +223,26 @@ nm_active_connection_get_connection (NMActiveConnection *connection) return NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->connection; } +/** + * nm_active_connection_get_id: + * @connection: a #NMActiveConnection + * + * Gets the #NMConnection's ID. + * + * Returns: the ID of the #NMConnection that backs the #NMActiveConnection. + * This is the internal string used by the connection, and must not be modified. + * + * Since: 0.9.10 + **/ +const char * +nm_active_connection_get_id (NMActiveConnection *connection) +{ + g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL); + + _nm_object_ensure_inited (NM_OBJECT (connection)); + return NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->id; +} + /** * nm_active_connection_get_uuid: * @connection: a #NMActiveConnection @@ -237,6 +261,26 @@ nm_active_connection_get_uuid (NMActiveConnection *connection) return NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->uuid; } +/** + * nm_active_connection_get_connection_type: + * @connection: a #NMActiveConnection + * + * Gets the #NMConnection's type. + * + * Returns: the type of the #NMConnection that backs the #NMActiveConnection. + * This is the internal string used by the connection, and must not be modified. + * + * Since: 0.9.10 + **/ +const char * +nm_active_connection_get_connection_type (NMActiveConnection *connection) +{ + g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL); + + _nm_object_ensure_inited (NM_OBJECT (connection)); + return NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->type; +} + /** * nm_active_connection_get_specific_object: * @connection: a #NMActiveConnection @@ -481,7 +525,9 @@ finalize (GObject *object) NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (object); g_free (priv->connection); + g_free (priv->id); g_free (priv->uuid); + g_free (priv->type); g_free (priv->specific_object); g_free (priv->master); @@ -502,9 +548,15 @@ get_property (GObject *object, case PROP_CONNECTION: g_value_set_string (value, nm_active_connection_get_connection (self)); break; + case PROP_ID: + g_value_set_string (value, nm_active_connection_get_id (self)); + break; case PROP_UUID: g_value_set_string (value, nm_active_connection_get_uuid (self)); break; + case PROP_TYPE: + g_value_set_string (value, nm_active_connection_get_connection_type (self)); + break; case PROP_SPECIFIC_OBJECT: g_value_set_boxed (value, nm_active_connection_get_specific_object (self)); break; @@ -550,7 +602,9 @@ register_properties (NMActiveConnection *connection) NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (connection); const NMPropertiesInfo property_info[] = { { NM_ACTIVE_CONNECTION_CONNECTION, &priv->connection }, + { NM_ACTIVE_CONNECTION_ID, &priv->id }, { NM_ACTIVE_CONNECTION_UUID, &priv->uuid }, + { NM_ACTIVE_CONNECTION_TYPE, &priv->type }, { NM_ACTIVE_CONNECTION_SPECIFIC_OBJECT, &priv->specific_object }, { NM_ACTIVE_CONNECTION_DEVICES, &priv->devices, NULL, NM_TYPE_DEVICE }, { NM_ACTIVE_CONNECTION_STATE, &priv->state }, @@ -611,6 +665,21 @@ nm_active_connection_class_init (NMActiveConnectionClass *ap_class) NULL, G_PARAM_READABLE)); + /** + * NMActiveConnection:id: + * + * The active connection's ID + * + * Since: 0.9.10 + **/ + g_object_class_install_property + (object_class, PROP_ID, + g_param_spec_string (NM_ACTIVE_CONNECTION_ID, + "ID", + "ID", + NULL, + G_PARAM_READABLE)); + /** * NMActiveConnection:uuid: * @@ -624,6 +693,21 @@ nm_active_connection_class_init (NMActiveConnectionClass *ap_class) NULL, G_PARAM_READABLE)); + /** + * NMActiveConnection:type: + * + * The active connection's type + * + * Since: 0.9.10 + **/ + g_object_class_install_property + (object_class, PROP_TYPE, + g_param_spec_string (NM_ACTIVE_CONNECTION_TYPE, + "Type", + "Type", + NULL, + G_PARAM_READABLE)); + /** * NMActiveConnection:specific-object: * diff --git a/libnm-glib/nm-active-connection.h b/libnm-glib/nm-active-connection.h index 1d3ea99a44..b15e8340c6 100644 --- a/libnm-glib/nm-active-connection.h +++ b/libnm-glib/nm-active-connection.h @@ -44,7 +44,9 @@ G_BEGIN_DECLS #define NM_ACTIVE_CONNECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_ACTIVE_CONNECTION, NMActiveConnectionClass)) #define NM_ACTIVE_CONNECTION_CONNECTION "connection" +#define NM_ACTIVE_CONNECTION_ID "id" #define NM_ACTIVE_CONNECTION_UUID "uuid" +#define NM_ACTIVE_CONNECTION_TYPE "type" #define NM_ACTIVE_CONNECTION_SPECIFIC_OBJECT "specific-object" #define NM_ACTIVE_CONNECTION_DEVICES "devices" #define NM_ACTIVE_CONNECTION_STATE "state" @@ -78,7 +80,11 @@ GType nm_active_connection_get_type (void); GObject *nm_active_connection_new (DBusGConnection *connection, const char *path); const char * nm_active_connection_get_connection (NMActiveConnection *connection); +NM_AVAILABLE_IN_0_9_10 +const char * nm_active_connection_get_id (NMActiveConnection *connection); const char * nm_active_connection_get_uuid (NMActiveConnection *connection); +NM_AVAILABLE_IN_0_9_10 +const char * nm_active_connection_get_connection_type (NMActiveConnection *connection); const char * nm_active_connection_get_specific_object (NMActiveConnection *connection); const GPtrArray *nm_active_connection_get_devices (NMActiveConnection *connection); NMActiveConnectionState nm_active_connection_get_state (NMActiveConnection *connection);