core: resume bridged connections properly (rh #1162636)

This commit is contained in:
Adam Williamson 2015-01-29 14:37:46 -08:00
parent 4fc11861c4
commit de0318f42b
2 changed files with 52 additions and 1 deletions

View File

@ -0,0 +1,43 @@
From a687d1f9e0f75b987f40335934b54aa748f6724b Mon Sep 17 00:00:00 2001
From: Dan Williams <dcbw@redhat.com>
Date: Fri, 9 Jan 2015 15:47:54 -0600
Subject: core: ensure manager state is updated on resume with connectivity
checking enabled (rh #1162636) (bgo #742675)
On resume configured interfaces are unmanaged to clear their pre-resume
state and then re-managed. Eventually the interface should end up moving
to the DISCONNECTED state, which should trigger an auto-activate check in
the Policy. If connectivity checking was enabled, that auto-activate check
would fail because the Manager's state was still NM_STATE_ASLEEP.
This caused bridge slaves not to auto-activate on resume, which left bridges
without connectivity.
The manager never left NM_STATE_ASLEEP when connectivity checking was
enabled due to nm_manager_update_state() returning early when kicking
off a connectivity check. Instead, the manager's state should always
be updated to accurately reflect the current state.
https://bugzilla.redhat.com/show_bug.cgi?id=1162636
https://bugzilla.gnome.org/show_bug.cgi?id=742675
diff --git a/src/nm-manager.c b/src/nm-manager.c
index f3c5081..3d7b80d 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -645,10 +645,9 @@ nm_manager_update_state (NMManager *manager)
nm_connectivity_check_async (priv->connectivity,
checked_connectivity,
g_object_ref (manager));
- return;
- }
+ } else
+ nm_connectivity_set_online (priv->connectivity, new_state >= NM_STATE_CONNECTED_LOCAL);
- nm_connectivity_set_online (priv->connectivity, new_state >= NM_STATE_CONNECTED_LOCAL);
set_state (manager, new_state);
}
--
cgit v0.10.2

View File

@ -10,7 +10,7 @@
%define snapshot %{nil}
%define git_sha %{nil}
%define realversion 1.0.0
%define release_version 3
%define release_version 4
%define epoch_version 1
%define obsoletes_nmver 1:0.9.9.95-1
@ -80,6 +80,10 @@ Source3: 20-connectivity-fedora.conf
Patch0: 0000-explain-dns1-dns2.patch
Patch1: 0001-rh1116999-resolv-conf-symlink.patch
# http://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?id=a687d1f9e0f75b987f40335934b54aa748f6724b
# https://bugzilla.redhat.com/show_bug.cgi?id=1162636
Patch2: NetworkManager-1.0.0-bridge_resume.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%if 0%{?fedora} && 0%{?fedora} < 20
@ -363,6 +367,7 @@ by nm-connection-editor and nm-applet in a non-graphical environment.
%patch0 -p1 -b .0000-explain-dns1-dns2.orig
%patch1 -p1 -b .0001-rh1116999-resolv-conf-symlink.orig
%patch2 -p1 -b .bridge_resume
%build
@ -655,6 +660,9 @@ fi
%endif
%changelog
* Thu Jan 29 2015 Adam Williamson <awilliam@redhat.com> - 1:1.0.0-4
- core: resume bridged connections properly (rh #1162636, backport from master)
* Wed Jan 21 2015 Thomas Haller <thaller@redhat.com> - 1:1.0.0-3
- dns: manage resolv.conf as symlink to private file in /run directory (rh #1116999)