summaryrefslogtreecommitdiff
path: root/src/vpn-manager
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2010-06-04 00:42:10 -0700
committerDan Williams <dcbw@redhat.com>2010-06-04 00:42:10 -0700
commitae4b47ca998bdbcf844cbaf8a1b9607cabb47c45 (patch)
treeabfe6f51094432da7d0928e9abeabae7250f77fc /src/vpn-manager
parent25e758c77041bec8014a4f28333dd9ccd559487e (diff)
core: PolicyKit protect Deactivate and Disconnect
Diffstat (limited to 'src/vpn-manager')
-rw-r--r--src/vpn-manager/nm-vpn-manager.c27
-rw-r--r--src/vpn-manager/nm-vpn-manager.h3
2 files changed, 30 insertions, 0 deletions
diff --git a/src/vpn-manager/nm-vpn-manager.c b/src/vpn-manager/nm-vpn-manager.c
index 221a8b548c..309331aede 100644
--- a/src/vpn-manager/nm-vpn-manager.c
+++ b/src/vpn-manager/nm-vpn-manager.c
@@ -304,6 +304,33 @@ nm_vpn_manager_get_active_connections (NMVPNManager *manager)
return list;
}
+NMConnection *
+nm_vpn_manager_get_connection_for_active (NMVPNManager *manager,
+ const char *active_path)
+{
+ NMVPNManagerPrivate *priv;
+ GSList *iter;
+
+ g_return_val_if_fail (NM_IS_VPN_MANAGER (manager), NULL);
+
+ priv = NM_VPN_MANAGER_GET_PRIVATE (manager);
+ for (iter = priv->services; iter; iter = g_slist_next (iter)) {
+ GSList *active, *elt;
+
+ active = nm_vpn_service_get_active_connections (NM_VPN_SERVICE (iter->data));
+ for (elt = active; elt; elt = g_slist_next (elt)) {
+ NMVPNConnection *candidate = NM_VPN_CONNECTION (elt->data);
+ const char *ac_path;
+
+ ac_path = nm_vpn_connection_get_active_connection_path (candidate);
+ if (ac_path && !strcmp (ac_path, active_path))
+ return nm_vpn_connection_get_connection (candidate);
+ }
+ }
+
+ return NULL;
+}
+
NMVPNManager *
nm_vpn_manager_get (void)
{
diff --git a/src/vpn-manager/nm-vpn-manager.h b/src/vpn-manager/nm-vpn-manager.h
index d07aa25099..f14844a9d4 100644
--- a/src/vpn-manager/nm-vpn-manager.h
+++ b/src/vpn-manager/nm-vpn-manager.h
@@ -83,4 +83,7 @@ void nm_vpn_manager_add_active_connections (NMVPNManager *manager,
GSList *nm_vpn_manager_get_active_connections (NMVPNManager *manager);
+NMConnection *nm_vpn_manager_get_connection_for_active (NMVPNManager *manager,
+ const char *active_path);
+
#endif /* NM_VPN_VPN_MANAGER_H */