wireguard: refactor cleanup of NMDeviceWireGuard on disconnect/dispose
This commit is contained in:
@@ -1405,21 +1405,25 @@ get_configured_mtu (NMDevice *device, NMDeviceMtuSource *out_source)
|
|||||||
out_source);
|
out_source);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_device_cleanup (NMDeviceWireGuard *self)
|
||||||
|
{
|
||||||
|
NMDeviceWireGuardPrivate *priv = NM_DEVICE_WIREGUARD_GET_PRIVATE (self);
|
||||||
|
|
||||||
|
_peers_remove_all (priv);
|
||||||
|
_secrets_cancel (self);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
device_state_changed (NMDevice *device,
|
device_state_changed (NMDevice *device,
|
||||||
NMDeviceState new_state,
|
NMDeviceState new_state,
|
||||||
NMDeviceState old_state,
|
NMDeviceState old_state,
|
||||||
NMDeviceStateReason reason)
|
NMDeviceStateReason reason)
|
||||||
{
|
{
|
||||||
NMDeviceWireGuardPrivate *priv;
|
|
||||||
|
|
||||||
if (new_state <= NM_DEVICE_STATE_ACTIVATED)
|
if (new_state <= NM_DEVICE_STATE_ACTIVATED)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
priv = NM_DEVICE_WIREGUARD_GET_PRIVATE (device);
|
_device_cleanup (NM_DEVICE_WIREGUARD (device));
|
||||||
|
|
||||||
_peers_remove_all (priv);
|
|
||||||
_secrets_cancel (NM_DEVICE_WIREGUARD (device));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
@@ -1567,11 +1571,8 @@ static void
|
|||||||
dispose (GObject *object)
|
dispose (GObject *object)
|
||||||
{
|
{
|
||||||
NMDeviceWireGuard *self = NM_DEVICE_WIREGUARD (object);
|
NMDeviceWireGuard *self = NM_DEVICE_WIREGUARD (object);
|
||||||
NMDeviceWireGuardPrivate *priv = NM_DEVICE_WIREGUARD_GET_PRIVATE (self);
|
|
||||||
|
|
||||||
_secrets_cancel (self);
|
_device_cleanup (self);
|
||||||
|
|
||||||
_peers_remove_all (priv);
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (nm_device_wireguard_parent_class)->dispose (object);
|
G_OBJECT_CLASS (nm_device_wireguard_parent_class)->dispose (object);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user