From d91c12c441b97bf8400275101ea1d4e28e48c173 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Jun 09 2014 08:30:05 +0000 Subject: import NetworkManager-0.9.9.1-13.git20140326.4dba720.el7 --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..45f560b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/NetworkManager-0.9.9.1.git20140326.4dba720.tar.bz2 diff --git a/SOURCES/rh1083153-ignore-cloned-routes.patch b/SOURCES/rh1083153-ignore-cloned-routes.patch new file mode 100644 index 0000000..d5cf01f --- /dev/null +++ b/SOURCES/rh1083153-ignore-cloned-routes.patch @@ -0,0 +1,21 @@ +diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c +index 7ec3da6..9d90c28 100644 +--- a/src/platform/nm-linux-platform.c ++++ b/src/platform/nm-linux-platform.c +@@ -3141,14 +3141,16 @@ ip_route_mark_all (NMPlatform *platform, int family, int ifindex) + continue; + if (rtnl_route_get_protocol (rtnlroute) == RTPROT_KERNEL) + continue; + if (rtnl_route_get_family (rtnlroute) != family) + continue; + if (rtnl_route_get_nnexthops (rtnlroute) != 1) + continue; ++ if ((family == AF_INET6) && (rtnl_route_get_flags (rtnlroute) & RTM_F_CLONED)) ++ continue; + nexthop = rtnl_route_nexthop_n (rtnlroute, 0); + if (rtnl_route_nh_get_ifindex (nexthop) != ifindex) + continue; + nl_object_mark (object); + count++; + } + diff --git a/SOURCES/rh1091296-dispatch-lease-change.patch b/SOURCES/rh1091296-dispatch-lease-change.patch new file mode 100644 index 0000000..4421476 --- /dev/null +++ b/SOURCES/rh1091296-dispatch-lease-change.patch @@ -0,0 +1,85 @@ +From 2f18434cef0ab68343ec464159de940a59f02119 Mon Sep 17 00:00:00 2001 +From: Dan Williams +Date: Tue, 29 Apr 2014 16:42:57 -0500 +Subject: [PATCH] core: emit dhcp4/dhcp6-change dispatcher events if other IP + completes first (rh #1091296) + +If IPv6 completes first it would emit the "up" dispatcher event with IPv6 +details and move the device to ACTIVATED state. But if DHCPv4 was still +running, no dispatcher event would be emitted with the DHCPv4 information +until the first lease renew. Thus dispatcher scripts would not receive +DHCPv4 information for quite some time. + +Ensure that if the other IP version completes first, that when the slower +method's DHCP completes, that it emits the appropriate dhcp4-change +or dhcp6-change event so that dispatcher scripts get the information +as soon as it's available. +--- + src/devices/nm-device.c | 28 ++++++++++++++++++++++++++++ + 1 file changed, 28 insertions(+) + +diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c +index 6005072..2043ae3 100644 +--- a/src/devices/nm-device.c ++++ b/src/devices/nm-device.c +@@ -4481,14 +4481,28 @@ nm_device_activate_ip4_config_commit (gpointer user_data) + if (!start_sharing (self, priv->ip4_config)) { + nm_log_warn (LOGD_SHARING, "Activation (%s) Stage 5 of 5 (IPv4 Commit) start sharing failed.", iface); + nm_device_state_changed (self, NM_DEVICE_STATE_FAILED, NM_DEVICE_STATE_REASON_SHARED_START_FAILED); + goto out; + } + } + ++ /* If IPv4 wasn't the first to complete, and DHCP was used, then ensure ++ * dispatcher scripts get the DHCP lease information. ++ */ ++ if ( priv->dhcp4_client ++ && nm_device_activate_ip4_state_in_conf (self) ++ && (nm_device_get_state (self) > NM_DEVICE_STATE_IP_CONFIG)) { ++ /* Notify dispatcher scripts of new DHCP4 config */ ++ nm_dispatcher_call (DISPATCHER_ACTION_DHCP4_CHANGE, ++ nm_device_get_connection (self), ++ self, ++ NULL, ++ NULL); ++ } ++ + arp_announce (self); + + /* Enter the IP_CHECK state if this is the first method to complete */ + priv->ip4_state = IP_DONE; + if (nm_device_get_state (self) == NM_DEVICE_STATE_IP_CONFIG) + nm_device_state_changed (self, NM_DEVICE_STATE_IP_CHECK, NM_DEVICE_STATE_REASON_NONE); + +@@ -4558,14 +4572,28 @@ nm_device_activate_ip6_config_commit (gpointer user_data) + g_warn_if_fail (nm_platform_link_is_up (nm_device_get_ip_ifindex (self))); + + /* Allow setting MTU etc */ + if (NM_DEVICE_GET_CLASS (self)->ip6_config_pre_commit) + NM_DEVICE_GET_CLASS (self)->ip6_config_pre_commit (self); + + if (ip6_config_merge_and_apply (self, TRUE, &reason)) { ++ /* If IPv6 wasn't the first IP to complete, and DHCP was used, ++ * then ensure dispatcher scripts get the DHCP lease information. ++ */ ++ if ( priv->dhcp6_client ++ && nm_device_activate_ip6_state_in_conf (self) ++ && (nm_device_get_state (self) > NM_DEVICE_STATE_IP_CONFIG)) { ++ /* Notify dispatcher scripts of new DHCP6 config */ ++ nm_dispatcher_call (DISPATCHER_ACTION_DHCP6_CHANGE, ++ nm_device_get_connection (self), ++ self, ++ NULL, ++ NULL); ++ } ++ + /* Enter the IP_CHECK state if this is the first method to complete */ + priv->ip6_state = IP_DONE; + if (nm_device_get_state (self) == NM_DEVICE_STATE_IP_CONFIG) + nm_device_state_changed (self, NM_DEVICE_STATE_IP_CHECK, NM_DEVICE_STATE_REASON_NONE); + } else { + nm_log_warn (LOGD_DEVICE | LOGD_IP6, + "Activation (%s) Stage 5 of 5 (IPv6 Commit) failed", +-- +1.9.0 + diff --git a/SPECS/NetworkManager.spec b/SPECS/NetworkManager.spec index 738908b..87fa771 100644 --- a/SPECS/NetworkManager.spec +++ b/SPECS/NetworkManager.spec @@ -28,7 +28,7 @@ Name: NetworkManager Summary: Network connection manager and user applications Epoch: 1 Version: %{realversion} -Release: 12%{snapshot}%{?git_sha}%{?dist} +Release: 13%{snapshot}%{?git_sha}%{?dist} Group: System Environment/Base License: GPLv2+ URL: http://www.gnome.org/projects/NetworkManager/ @@ -45,6 +45,8 @@ Patch5: rh1070829-resolv-conf-selinux.patch Patch6: rh799241-dcb-carrier-fixes.patch Patch7: rh1083624-master-ignore-carrier.patch Patch8: rh1084554-balance-queued-state-lock.patch +Patch9: rh1083153-ignore-cloned-routes.patch +Patch10: rh1091296-dispatch-lease-change.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -202,6 +204,8 @@ by nm-connection-editor and nm-applet in a non-graphical environment. %patch6 -p1 -b .rh799241-dcb-carrier %patch7 -p1 -b .rh1083624-master-ignore-carrier %patch8 -p1 -b .rh1084554-balance-queued-state-lock +%patch9 -p1 -b .rh1083153-ignore-cloned-routes +%patch10 -p1 -b .rh1091296-dispatch-lease-change %build @@ -422,6 +426,10 @@ fi %endif %changelog +* Thu May 1 2014 Dan Williams - 1:0.9.9.1-13.git20140326 +- core: ignore IPv6 cache routes to fix initial connection generation (rh #1083153) +- core: ensure slow DHCP emits 'dhcp4-change' and 'dhcp6-change' dispatcher events (rh #1091296) + * Mon Apr 7 2014 Dan Williams - 1:0.9.9.1-12.git20140326 - core: fix master interface DHCP handling if ignore-carrier is set (rh #1083624) - core: fix startup state not finishing correctly (rh #1084554)