diff --git a/libnm-glib/libnm-glib.ver b/libnm-glib/libnm-glib.ver index b8ce807e4..cb7b59988 100644 --- a/libnm-glib/libnm-glib.ver +++ b/libnm-glib/libnm-glib.ver @@ -32,6 +32,7 @@ global: nm_active_connection_get_state; nm_active_connection_get_type; nm_active_connection_get_uuid; + nm_active_connection_get_vpn; nm_active_connection_new; nm_client_activate_connection; nm_client_add_and_activate_connection; diff --git a/libnm-glib/nm-active-connection.c b/libnm-glib/nm-active-connection.c index 11f37cfbb..460a2158a 100644 --- a/libnm-glib/nm-active-connection.c +++ b/libnm-glib/nm-active-connection.c @@ -17,7 +17,7 @@ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. * - * Copyright (C) 2007 - 2011 Red Hat, Inc. + * Copyright (C) 2007 - 2014 Red Hat, Inc. * Copyright (C) 2008 Novell, Inc. */ @@ -63,6 +63,7 @@ typedef struct { gboolean is_default6; NMIP6Config *ip6_config; NMDHCP6Config *dhcp6_config; + gboolean is_vpn; char *master; } NMActiveConnectionPrivate; @@ -79,6 +80,7 @@ enum { PROP_DEFAULT6, PROP_IP6_CONFIG, PROP_DHCP6_CONFIG, + PROP_VPN, PROP_MASTER, LAST_PROP @@ -410,6 +412,25 @@ nm_active_connection_get_dhcp6_config (NMActiveConnection *connection) return NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->dhcp6_config; } +/** + * nm_active_connection_get_vpn: + * @connection: a #NMActiveConnection + * + * Whether the active connection is a VPN connection. + * + * Returns: %TRUE if the active connection is a VPN connection + * + * Since: 0.9.10 + **/ +gboolean +nm_active_connection_get_vpn (NMActiveConnection *connection) +{ + g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), FALSE); + + _nm_object_ensure_inited (NM_OBJECT (connection)); + return NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->is_vpn; +} + /** * nm_active_connection_get_master: * @connection: a #NMActiveConnection @@ -511,6 +532,9 @@ get_property (GObject *object, case PROP_DHCP6_CONFIG: g_value_set_object (value, nm_active_connection_get_dhcp6_config (self)); break; + case PROP_VPN: + g_value_set_boolean (value, nm_active_connection_get_vpn (self)); + break; case PROP_MASTER: g_value_set_string (value, nm_active_connection_get_master (self)); break; @@ -536,11 +560,9 @@ register_properties (NMActiveConnection *connection) { NM_ACTIVE_CONNECTION_DEFAULT6, &priv->is_default6 }, { NM_ACTIVE_CONNECTION_IP6_CONFIG, &priv->ip6_config, NULL, NM_TYPE_IP6_CONFIG }, { NM_ACTIVE_CONNECTION_DHCP6_CONFIG, &priv->dhcp6_config, NULL, NM_TYPE_DHCP6_CONFIG }, + { NM_ACTIVE_CONNECTION_VPN, &priv->is_vpn }, { NM_ACTIVE_CONNECTION_MASTER, &priv->master }, - /* not tracked after construction time */ - { "vpn", NULL }, - { NULL }, }; @@ -729,6 +751,21 @@ nm_active_connection_class_init (NMActiveConnectionClass *ap_class) NM_TYPE_DHCP6_CONFIG, G_PARAM_READABLE)); + /** + * NMActiveConnection:vpn: + * + * Whether the active connection is a VPN connection. + * + * Since: 0.9.10 + **/ + g_object_class_install_property + (object_class, PROP_VPN, + g_param_spec_boolean (NM_ACTIVE_CONNECTION_VPN, + "VPN", + "Is a VPN connection", + FALSE, + G_PARAM_READABLE)); + /** * NMActiveConnection:master: * diff --git a/libnm-glib/nm-active-connection.h b/libnm-glib/nm-active-connection.h index 49f040def..716d3c2df 100644 --- a/libnm-glib/nm-active-connection.h +++ b/libnm-glib/nm-active-connection.h @@ -17,7 +17,7 @@ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. * - * Copyright (C) 2007 - 2011 Red Hat, Inc. + * Copyright (C) 2007 - 2014 Red Hat, Inc. * Copyright (C) 2008 Novell, Inc. */ @@ -54,6 +54,7 @@ G_BEGIN_DECLS #define NM_ACTIVE_CONNECTION_DEFAULT6 "default6" #define NM_ACTIVE_CONNECTION_IP6_CONFIG "ip6-config" #define NM_ACTIVE_CONNECTION_DHCP6_CONFIG "dhcp6-config" +#define NM_ACTIVE_CONNECTION_VPN "vpn" #define NM_ACTIVE_CONNECTION_MASTER "master" typedef struct { @@ -88,6 +89,7 @@ NMDHCP4Config *nm_active_connection_get_dhcp4_config (NMActiveConnection *c gboolean nm_active_connection_get_default6 (NMActiveConnection *connection); NMIP6Config * nm_active_connection_get_ip6_config (NMActiveConnection *connection); NMDHCP6Config *nm_active_connection_get_dhcp6_config (NMActiveConnection *connection); +gboolean nm_active_connection_get_vpn (NMActiveConnection *connection); G_END_DECLS