From 460a3d55cb738b4253ecef3cd9538d7ebe8fb158 Mon Sep 17 00:00:00 2001 From: Jan Palus Date: Wed, 18 Jul 2018 10:35:13 +0200 Subject: [PATCH] upstream patch to fix regression when connecting to vpn from nm-applet --- NetworkManager.spec | 4 ++- accept_non_null_device.patch | 54 ++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 accept_non_null_device.patch diff --git a/NetworkManager.spec b/NetworkManager.spec index 78a6303..95e88a9 100644 --- a/NetworkManager.spec +++ b/NetworkManager.spec @@ -7,7 +7,7 @@ Summary: Network Manager for GNOME Summary(pl.UTF-8): Zarządca sieci dla GNOME Name: NetworkManager Version: 1.12.0 -Release: 1 +Release: 2 Epoch: 2 License: GPL v2+ Group: Networking/Admin @@ -19,6 +19,7 @@ Source4: %{name}.init Patch0: ifcfg-path.patch Patch1: %{name}-sh.patch Patch2: systemd-fallback.patch +Patch3: accept_non_null_device.patch URL: https://wiki.gnome.org/Projects/NetworkManager BuildRequires: ModemManager-devel >= 1.0.0 BuildRequires: audit-libs-devel @@ -193,6 +194,7 @@ Bashowe uzupełnianie nazw dla polecenia NetworkManagera (nmcli). %patch0 -p1 %patch1 -p1 %{?with_systemd:%patch2 -p1} +%patch3 -p1 %build %{__gtkdocize} diff --git a/accept_non_null_device.patch b/accept_non_null_device.patch new file mode 100644 index 0000000..aa32c36 --- /dev/null +++ b/accept_non_null_device.patch @@ -0,0 +1,54 @@ +From 9748aef7c7982ad1fe377ab6fc64255fcdb52762 Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Fri, 6 Jul 2018 15:54:16 +0200 +Subject: [PATCH] manager: accept non-null device for VPN activations + +Commit 10753c36168a ("manager: merge VPN handling into +_new_active_connection()") added a check to fail the activation of +VPNs when a device is passed to ActivateConnection(), since the device +argument is ignored for VPNs. + +This broke activating VPNs from nm-applet as nm-applet sets both the +specific_object (parent-connection) and device arguments in the +activation request. + +Note that we already check in _new_active_connection() that when a +device is supplied, it matches the device of the parent +connection. Therefore, the check can be dropped. + +Reported-by: Michael Biebl +Fixes: 10753c36168a82cd658df8a7da800960fddd78ed + +https://github.com/NetworkManager/NetworkManager/pull/159 +(cherry picked from commit e205664ba8c25939f1678d1b078a67989c180046) +--- + src/nm-manager.c | 16 +--------------- + 1 file changed, 1 insertion(+), 15 deletions(-) + +diff --git a/src/nm-manager.c b/src/nm-manager.c +index 0fea13de69..289dcf8382 100644 +--- a/src/nm-manager.c ++++ b/src/nm-manager.c +@@ -4611,21 +4611,7 @@ validate_activation_request (NMManager *self, + } + } + +- if (is_vpn && device) { +- /* VPN's are treated specially. Maybe the should accept a device as well, +- * however, later on during activation, we don't handle the device. +- * +- * Maybe we should, and maybe it makes sense to specify a device +- * when activating a VPN. But for now, just error out. */ +- g_set_error_literal (error, +- NM_MANAGER_ERROR, +- NM_MANAGER_ERROR_UNKNOWN_DEVICE, +- "Cannot specify device when activating VPN"); +- return NULL; +- } +- +- nm_assert ( ( is_vpn && !device) +- || (!is_vpn && NM_IS_DEVICE (device))); ++ nm_assert (is_vpn || NM_IS_DEVICE (device)); + + *out_device = device; + *out_is_vpn = is_vpn; -- 2.44.0