mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-27 15:10:09 +01:00
device: fix leaking queued NMActiveConnection
The queued activation request must transition state to
DEACTIVATED, otherwise it is not removed from the list
of active_connections in NMManager.
(cherry picked from commit b9da094da9)
This commit is contained in:
parent
da32e0a841
commit
1d1947b25e
1 changed files with 12 additions and 3 deletions
|
|
@ -5578,6 +5578,15 @@ disconnect_cb (NMDevice *self,
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_clear_queued_act_request (NMDevicePrivate *priv)
|
||||
{
|
||||
if (priv->queued_act_request) {
|
||||
nm_active_connection_set_state ((NMActiveConnection *) priv->queued_act_request, NM_ACTIVE_CONNECTION_STATE_DEACTIVATED);
|
||||
g_clear_object (&priv->queued_act_request);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
impl_device_disconnect (NMDevice *self, DBusGMethodInvocation *context)
|
||||
{
|
||||
|
|
@ -5692,7 +5701,7 @@ nm_device_queue_activation (NMDevice *self, NMActRequest *req)
|
|||
}
|
||||
|
||||
/* supercede any already-queued request */
|
||||
g_clear_object (&priv->queued_act_request);
|
||||
_clear_queued_act_request (priv);
|
||||
priv->queued_act_request = g_object_ref (req);
|
||||
|
||||
/* Deactivate existing activation request first */
|
||||
|
|
@ -7489,7 +7498,7 @@ _set_state_full (NMDevice *self,
|
|||
|
||||
if (state <= NM_DEVICE_STATE_UNAVAILABLE) {
|
||||
_clear_available_connections (self, TRUE);
|
||||
g_clear_object (&priv->queued_act_request);
|
||||
_clear_queued_act_request (priv);
|
||||
}
|
||||
|
||||
/* Update the available connections list when a device first becomes available */
|
||||
|
|
@ -8201,7 +8210,7 @@ dispose (GObject *object)
|
|||
priv->carrier_wait_id = 0;
|
||||
}
|
||||
|
||||
g_clear_object (&priv->queued_act_request);
|
||||
_clear_queued_act_request (priv);
|
||||
|
||||
platform = nm_platform_get ();
|
||||
g_signal_handlers_disconnect_by_func (platform, G_CALLBACK (device_ip_changed), self);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue