diff options
author | Dan Williams <dcbw@redhat.com> | 2010-06-04 00:42:10 -0700 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2010-06-04 00:42:10 -0700 |
commit | ae4b47ca998bdbcf844cbaf8a1b9607cabb47c45 (patch) | |
tree | abfe6f51094432da7d0928e9abeabae7250f77fc /src/vpn-manager | |
parent | 25e758c77041bec8014a4f28333dd9ccd559487e (diff) |
core: PolicyKit protect Deactivate and Disconnect
Diffstat (limited to 'src/vpn-manager')
-rw-r--r-- | src/vpn-manager/nm-vpn-manager.c | 27 | ||||
-rw-r--r-- | src/vpn-manager/nm-vpn-manager.h | 3 |
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 */ |