[packages/NetworkManager] upstream patch (11aa07e) to fix routing for opevpn connections

atler atler at pld-linux.org
Sun Jan 24 23:51:58 CET 2016


commit 9d9aca8743db08ee5b36eadcc652b5406f201a50
Author: Jan Palus <atler at pld-linux.org>
Date:   Sun Jan 24 23:49:41 2016 +0100

    upstream patch (11aa07e) to fix routing for opevpn connections
    
    - see https://bugzilla.gnome.org/show_bug.cgi?id=759892
    - rel 2

 NetworkManager-openvpn.patch | 51 ++++++++++++++++++++++++++++++++++++++++++++
 NetworkManager.spec          |  4 +++-
 2 files changed, 54 insertions(+), 1 deletion(-)
---
diff --git a/NetworkManager.spec b/NetworkManager.spec
index 83689a4..7162be2 100644
--- a/NetworkManager.spec
+++ b/NetworkManager.spec
@@ -8,7 +8,7 @@ Summary:	Network Manager for GNOME
 Summary(pl.UTF-8):	Zarządca sieci dla GNOME
 Name:		NetworkManager
 Version:	1.0.10
-Release:	1
+Release:	2
 Epoch:		2
 License:	GPL v2+
 Group:		Networking/Admin
@@ -19,6 +19,7 @@ Source3:	%{name}.tmpfiles
 Source4:	%{name}.init
 Patch0:		ifcfg-path.patch
 Patch1:		systemd-fallback.patch
+Patch2:		%{name}-openvpn.patch
 URL:		https://wiki.gnome.org/Projects/NetworkManager
 BuildRequires:	ModemManager-devel >= 1.0.0
 BuildRequires:	autoconf >= 2.63
@@ -183,6 +184,7 @@ Bashowe uzupełnianie nazw dla polecenia NetworkManagera (nmcli).
 %setup -q
 %patch0 -p1
 %{?with_systemd:%patch1 -p1}
+%patch2 -p1
 
 %build
 %{__gtkdocize}
diff --git a/NetworkManager-openvpn.patch b/NetworkManager-openvpn.patch
new file mode 100644
index 0000000..b7c2be6
--- /dev/null
+++ b/NetworkManager-openvpn.patch
@@ -0,0 +1,51 @@
+From 11aa07ed939193e85516c287a57dee1837242972 Mon Sep 17 00:00:00 2001
+From: Thomas Haller <thaller at redhat.com>
+Date: Mon, 4 Jan 2016 18:54:26 +0100
+Subject: core: fix failure to configure routes due to wrong device-route for
+ IPv4 peer-addresses
+
+As in the case of a OpenVPN connection, we might add an address like:
+  10.8.0.58/32 ptp 10.8.0.57
+
+In this case, kernel would automatically add a device-route like:
+  10.8.0.57/32 via 0.0.0.0 dev 32 metric 0 mss 0 src rtprot-kernel scope link pref-src 10.8.0.58
+
+nm_ip4_config_commit() checks all IP addresses to figure out
+the present device-routes. Then the routes are synced by NMRouteManager.
+Due to a bug, we would not consider the peer-address, but the local-address
+and configure a route 10.8.0.58/32, instead of 10.8.0.57/32.
+
+That stays mostly unnoticed, because usually the peer and the local-address are
+in the same subnet, so that there is no difference (/32 is an example of the
+peer-address being in a different subnet).
+
+It also seems that due to a bug fixed by df4e5357521 this issue didn't surface.
+Probably because we would not notice the 10.8.0.57/32 right away and thus
+nm_route_manager_ip4_route_sync() would not wrongly delete it.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=759892
+
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=809195
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=809494
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=809526
+https://bugs.archlinux.org/task/47535
+https://bugzilla.redhat.com/show_bug.cgi?id=1294309
+https://mail.gnome.org/archives/networkmanager-list/2015-December/msg00059.html
+
+diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c
+index f625d35..61e29af 100644
+--- a/src/nm-ip4-config.c
++++ b/src/nm-ip4-config.c
+@@ -298,7 +298,8 @@ nm_ip4_config_commit (const NMIP4Config *config, int ifindex, gboolean routes_fu
+ 
+ 				route.ifindex = ifindex;
+ 				route.source = NM_IP_CONFIG_SOURCE_KERNEL;
+-				route.network = nm_utils_ip4_address_clear_host_address (addr->address, addr->plen);
++				route.network = nm_utils_ip4_address_clear_host_address (addr->peer_address ? : addr->address,
++				                                                         addr->plen);
+ 				route.plen = addr->plen;
+ 				route.pref_src = addr->address;
+ 				route.metric = default_route_metric;
+-- 
+cgit v0.10.2
+
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/NetworkManager.git/commitdiff/9d9aca8743db08ee5b36eadcc652b5406f201a50



More information about the pld-cvs-commit mailing list