diff --git a/src/nm-manager.c b/src/nm-manager.c index 42cdd62f44..395ad48b82 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -3014,7 +3014,7 @@ nm_manager_deactivate_connection (NMManager *manager, if (reason == NM_DEVICE_STATE_REASON_CONNECTION_REMOVED) vpn_reason = NM_VPN_CONNECTION_STATE_REASON_CONNECTION_REMOVED; - if (nm_vpn_manager_deactivate_connection (priv->vpn_manager, connection_path, vpn_reason)) + if (nm_vpn_manager_deactivate_connection (priv->vpn_manager, NM_VPN_CONNECTION (active), vpn_reason)) success = TRUE; } else { g_assert (NM_IS_ACT_REQUEST (active)); diff --git a/src/vpn-manager/nm-vpn-manager.c b/src/vpn-manager/nm-vpn-manager.c index 1b4564c9c4..ebf85e30eb 100644 --- a/src/vpn-manager/nm-vpn-manager.c +++ b/src/vpn-manager/nm-vpn-manager.c @@ -168,7 +168,7 @@ nm_vpn_manager_activate_connection (NMVPNManager *manager, gboolean nm_vpn_manager_deactivate_connection (NMVPNManager *self, - const char *path, + NMVPNConnection *connection, NMVPNConnectionStateReason reason) { NMVPNManagerPrivate *priv; @@ -179,19 +179,17 @@ nm_vpn_manager_deactivate_connection (NMVPNManager *self, g_return_val_if_fail (self, FALSE); g_return_val_if_fail (NM_IS_VPN_MANAGER (self), FALSE); - g_return_val_if_fail (path != NULL, FALSE); + g_return_val_if_fail (connection != NULL, FALSE); priv = NM_VPN_MANAGER_GET_PRIVATE (self); g_hash_table_iter_init (&iter, priv->services); while (g_hash_table_iter_next (&iter, NULL, &data) && (success == FALSE)) { active = nm_vpn_service_get_active_connections (NM_VPN_SERVICE (data)); for (aiter = active; aiter; aiter = g_slist_next (aiter)) { - NMVPNConnection *vpn = NM_VPN_CONNECTION (aiter->data); - const char *vpn_path; + NMVPNConnection *candidate = aiter->data; - vpn_path = nm_active_connection_get_path (NM_ACTIVE_CONNECTION (vpn)); - if (!strcmp (path, vpn_path)) { - nm_vpn_connection_disconnect (vpn, reason); + if (connection == candidate) { + nm_vpn_connection_disconnect (connection, reason); success = TRUE; break; } diff --git a/src/vpn-manager/nm-vpn-manager.h b/src/vpn-manager/nm-vpn-manager.h index 0789a2fb2f..1d398ea2cb 100644 --- a/src/vpn-manager/nm-vpn-manager.h +++ b/src/vpn-manager/nm-vpn-manager.h @@ -68,7 +68,7 @@ NMActiveConnection *nm_vpn_manager_activate_connection (NMVPNManager *manager, GError **error); gboolean nm_vpn_manager_deactivate_connection (NMVPNManager *manager, - const char *path, + NMVPNConnection *connection, NMVPNConnectionStateReason reason); #endif /* NM_VPN_MANAGER_H */