vpn-connection: refactor cancellation of secrets

This commit is contained in:
Thomas Haller
2015-09-07 14:00:52 +02:00
parent 674f778c41
commit 80a7b41613

View File

@@ -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 static NMVpnConnectionState
_state_to_nm_vpn_state (VpnState state) _state_to_nm_vpn_state (VpnState state)
{ {
@@ -387,8 +400,7 @@ _set_vpn_state (NMVpnConnection *self,
_state_to_ac_state (vpn_state)); _state_to_ac_state (vpn_state));
/* Clear any in-progress secrets request */ /* Clear any in-progress secrets request */
if (priv->secrets_id) cancel_get_secrets (self);
nm_settings_connection_cancel_secrets (NM_SETTINGS_CONNECTION (priv->connection), priv->secrets_id);
dispatcher_cleanup (self); dispatcher_cleanup (self);
@@ -2112,6 +2124,8 @@ get_secrets (NMVpnConnection *self,
g_return_if_fail (secrets_idx < SECRETS_REQ_LAST); g_return_if_fail (secrets_idx < SECRETS_REQ_LAST);
priv->secrets_idx = secrets_idx; priv->secrets_idx = secrets_idx;
cancel_get_secrets (self);
_LOGD ("requesting VPN secrets pass #%d", _LOGD ("requesting VPN secrets pass #%d",
priv->secrets_idx + 1); priv->secrets_idx + 1);
@@ -2241,7 +2255,8 @@ constructed (GObject *object)
static void static void
dispose (GObject *object) 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); g_clear_pointer (&priv->connect_hash, g_variant_unref);
@@ -2250,12 +2265,9 @@ dispose (GObject *object)
priv->connect_timeout = 0; priv->connect_timeout = 0;
} }
dispatcher_cleanup (NM_VPN_CONNECTION (object)); dispatcher_cleanup (self);
if (priv->secrets_id) { cancel_get_secrets (self);
nm_settings_connection_cancel_secrets (NM_SETTINGS_CONNECTION (priv->connection),
priv->secrets_id);
}
if (priv->cancellable) { if (priv->cancellable) {
g_cancellable_cancel (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->default_route_manager);
g_clear_object (&priv->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); G_OBJECT_CLASS (nm_vpn_connection_parent_class)->dispose (object);
} }