diff options
author | Thomas Haller <thaller@redhat.com> | 2015-09-07 14:00:52 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2015-09-18 16:12:36 +0200 |
commit | 80a7b41613d2e6f69ac7616d314f90d56097275c (patch) | |
tree | 8958e975ce86a13c2a831a522c594a064501d48d | |
parent | 674f778c419d1e74642d7d6031c589fc5593f0c1 (diff) | |
download | NetworkManager-80a7b41613d2e6f69ac7616d314f90d56097275c.tar.gz |
vpn-connection: refactor cancellation of secrets
-rw-r--r-- | src/vpn-manager/nm-vpn-connection.c | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/src/vpn-manager/nm-vpn-connection.c b/src/vpn-manager/nm-vpn-connection.c index 4ac3863c59..2bf19d4992 100644 --- a/src/vpn-manager/nm-vpn-connection.c +++ b/src/vpn-manager/nm-vpn-connection.c @@ -206,6 +206,19 @@ __LOG_create_prefix (char *buf, NMVpnConnection *self) /*********************************************************************/ +static void +cancel_get_secrets (NMVpnConnection *self) +{ + NMVpnConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (self); + + if (priv->secrets_id) { + nm_settings_connection_cancel_secrets (NM_SETTINGS_CONNECTION (priv->connection), + priv->secrets_id); + g_warn_if_fail (!priv->secrets_id); + priv->secrets_id = NULL; + } +} + static NMVpnConnectionState _state_to_nm_vpn_state (VpnState state) { @@ -387,8 +400,7 @@ _set_vpn_state (NMVpnConnection *self, _state_to_ac_state (vpn_state)); /* Clear any in-progress secrets request */ - if (priv->secrets_id) - nm_settings_connection_cancel_secrets (NM_SETTINGS_CONNECTION (priv->connection), priv->secrets_id); + cancel_get_secrets (self); dispatcher_cleanup (self); @@ -2112,6 +2124,8 @@ get_secrets (NMVpnConnection *self, g_return_if_fail (secrets_idx < SECRETS_REQ_LAST); priv->secrets_idx = secrets_idx; + cancel_get_secrets (self); + _LOGD ("requesting VPN secrets pass #%d", priv->secrets_idx + 1); @@ -2241,7 +2255,8 @@ constructed (GObject *object) static void dispose (GObject *object) { - NMVpnConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (object); + NMVpnConnection *self = NM_VPN_CONNECTION (object); + NMVpnConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (self); g_clear_pointer (&priv->connect_hash, g_variant_unref); @@ -2250,12 +2265,9 @@ dispose (GObject *object) priv->connect_timeout = 0; } - dispatcher_cleanup (NM_VPN_CONNECTION (object)); + dispatcher_cleanup (self); - if (priv->secrets_id) { - nm_settings_connection_cancel_secrets (NM_SETTINGS_CONNECTION (priv->connection), - priv->secrets_id); - } + cancel_get_secrets (self); if (priv->cancellable) { g_cancellable_cancel (priv->cancellable); @@ -2268,7 +2280,7 @@ dispose (GObject *object) g_clear_object (&priv->default_route_manager); g_clear_object (&priv->route_manager); - fw_call_cleanup (NM_VPN_CONNECTION (object)); + fw_call_cleanup (self); G_OBJECT_CLASS (nm_vpn_connection_parent_class)->dispose (object); } |