mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-06 16:40:16 +01:00
nm-active-connection: Emit device-metered-changed if device changes
The new device might have a different metered status from the old one.
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
Fixes: 04d5804dd5 ('nm-manager: add 'metered' property')
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/982
This commit is contained in:
parent
756757102f
commit
0ad77d05b9
1 changed files with 7 additions and 0 deletions
|
|
@ -678,6 +678,7 @@ nm_active_connection_set_device(NMActiveConnection *self, NMDevice *device)
|
|||
{
|
||||
NMActiveConnectionPrivate *priv;
|
||||
gs_unref_object NMDevice *old_device = NULL;
|
||||
NMMetered old_metered, new_metered;
|
||||
|
||||
g_return_val_if_fail(NM_IS_ACTIVE_CONNECTION(self), FALSE);
|
||||
g_return_val_if_fail(!device || NM_IS_DEVICE(device), FALSE);
|
||||
|
|
@ -695,6 +696,8 @@ nm_active_connection_set_device(NMActiveConnection *self, NMDevice *device)
|
|||
device);
|
||||
|
||||
old_device = priv->device ? g_object_ref(priv->device) : NULL;
|
||||
|
||||
old_metered = old_device ? nm_device_get_metered(old_device) : NM_METERED_UNKNOWN;
|
||||
_device_cleanup(self);
|
||||
|
||||
if (device) {
|
||||
|
|
@ -730,7 +733,11 @@ nm_active_connection_set_device(NMActiveConnection *self, NMDevice *device)
|
|||
}
|
||||
_notify(self, PROP_INT_DEVICE);
|
||||
|
||||
new_metered = priv->device ? nm_device_get_metered(priv->device) : NM_METERED_UNKNOWN;
|
||||
|
||||
g_signal_emit(self, signals[DEVICE_CHANGED], 0, priv->device, old_device);
|
||||
if (new_metered != old_metered)
|
||||
g_signal_emit(self, signals[DEVICE_METERED_CHANGED], 0, new_metered);
|
||||
|
||||
_notify(self, PROP_DEVICES);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue