You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
3.0 KiB

From 98b1cf070bfa857a8a39b6499b39494bc4f4e54b Mon Sep 17 00:00:00 2001
From: Beniamino Galvani <bgalvani@redhat.com>
Date: Tue, 23 Apr 2019 16:39:17 +0200
Subject: [PATCH 1/2] manager: clear unmanaged-sleeping flag on software
devices on resume
When networking is disabled at NM startup we unmanage all devices
(including software ones) due to SLEEPING. After networking gets
enabled again we must clear the unmanaged-sleeping flag on software
devices.
(cherry picked from commit 656753b70888badc29ffca592f82fd8355894596)
(cherry picked from commit bb555ff6b5959767ab663d610cdabb8baa280447)
---
src/nm-manager.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/nm-manager.c b/src/nm-manager.c
index 40e068ac5..ed2fa3df4 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -5923,10 +5923,10 @@ do_sleep_wake (NMManager *self, gboolean sleeping_changed)
c_list_for_each_entry (device, &priv->devices_lst_head, devices_lst) {
guint i;
- if (nm_device_is_software (device)) {
- /* We do not manage/unmanage software devices but
- * their dhcp leases could have gone stale so we need
- * to renew them */
+ if ( nm_device_is_software (device)
+ && !nm_device_get_unmanaged_flags (device, NM_UNMANAGED_SLEEPING)) {
+ /* DHCP leases of software devices could have gone stale
+ * so we need to renew them. */
nm_device_update_dynamic_ip_setup (device);
continue;
}
--
2.20.1
From 9b08f52f043cb5f3794f1432df157a16c222b21c Mon Sep 17 00:00:00 2001
From: Beniamino Galvani <bgalvani@redhat.com>
Date: Tue, 23 Apr 2019 15:30:53 +0200
Subject: [PATCH 2/2] manager: unmanage software devices when networking gets
disabled
If a user disables networking, we consider that as an indication that
also software devices must be disconnected. OTOH, we don't want to
destroy them for external events as a system suspend.
(cherry picked from commit 32ee51eee002f5e6717b856fd0a095114a02cc96)
(cherry picked from commit da8462df1a273cd6b31f885b866726a64ca14550)
---
src/nm-manager.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/nm-manager.c b/src/nm-manager.c
index ed2fa3df4..c0cd15c0c 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -5866,9 +5866,15 @@ do_sleep_wake (NMManager *self, gboolean sleeping_changed)
* suspend/resume?
*/
c_list_for_each_entry (device, &priv->devices_lst_head, devices_lst) {
- /* FIXME: shouldn't we be unmanaging software devices if !suspending? */
- if (nm_device_is_software (device))
- continue;
+ if (nm_device_is_software (device)) {
+ /* If a user disables networking we consider that as an
+ * indication that also software devices must be disconnected.
+ * But we don't want to destroy them for external events as
+ * a system suspend.
+ */
+ if (suspending)
+ continue;
+ }
/* Wake-on-LAN devices will be taken down post-suspend rather than pre- */
if ( suspending
&& device_is_wake_on_lan (priv->platform, device)) {
--
2.20.1