From 5eb1ef41ac2c4b6895d679e13ae1d9e9f6bdcd73 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Fri, 21 Apr 2017 12:05:14 +0200 Subject: [PATCH 1/3] firewall: fix supressing errors from D-Bus calls We want to ignore certain errors from firewalld. In the past, the error message contained only the error code. Since recently ([1], [2]), the error message contains a longer text: NetworkManager[647]: [1492768494.7475] device[0x7f7f21e78f50] (eth0): Activation: setting firewall zone 'default' NetworkManager[647]: [1492768494.7475] firewall: [0x7f7f21ed8900,change:"eth0"]: firewall zone change eth0:default ... firewalld[2342]: ERROR: UNKNOWN_INTERFACE: 'eth0' is not in any zone NetworkManager[647]: [1492768494.7832] firewall: [0x7f7f0400c780,remove:"eth0"]: complete: request failed (UNKNOWN_INTERFACE: 'eth0' is not in any zone) [1] https://github.com/t-woerner/firewalld/commit/c77156d7f688a0be3f0a1b4869b1c659e9e18cd6 [2] https://github.com/t-woerner/firewalld/commit/7c6ab456c5c461ac40cd7bb979a5daec6a13e6e4 (cherry picked from commit 2ad8bb0ce377624eefafe3b626d3fe691a7b9b7c) --- src/nm-firewall-manager.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/nm-firewall-manager.c b/src/nm-firewall-manager.c index 045d5abc4c..0d893652f8 100644 --- a/src/nm-firewall-manager.c +++ b/src/nm-firewall-manager.c @@ -263,14 +263,16 @@ _handle_dbus (GObject *proxy, GAsyncResult *result, gpointer user_data) non_error = "UNKNOWN_INTERFACE"; break; } - if (!g_strcmp0 (error->message, non_error)) { + if ( error->message + && non_error + && g_str_has_prefix (error->message, non_error) + && NM_IN_SET (error->message[strlen (non_error)], '\0', ':')) { _LOGD (info, "complete: request failed with a non-error (%s)", error->message); /* The operation failed with an error reason that we don't want * to propagate. Instead, signal success. */ g_clear_error (&error); - } - else + } else _LOGW (info, "complete: request failed (%s)", error->message); } else _LOGD (info, "complete: success"); From ebb3830e57ddb87e72699ed83df2765836228775 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Fri, 21 Apr 2017 11:42:45 +0200 Subject: [PATCH 2/3] org.freedesktop.NetworkManager.conf: don't use tabs (cherry picked from commit 8583e62276a23a7ea858edf6c71d122e22f41955) --- src/org.freedesktop.NetworkManager.conf | 28 ++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/org.freedesktop.NetworkManager.conf b/src/org.freedesktop.NetworkManager.conf index d130f7e271..e4d1b78ba6 100644 --- a/src/org.freedesktop.NetworkManager.conf +++ b/src/org.freedesktop.NetworkManager.conf @@ -11,8 +11,8 @@ @@ -39,7 +39,7 @@ - + - + - + - + - + - + - + - + @@ -139,7 +139,7 @@ - 1024 - 2048 + 1024 + 2048 From ff5b7275a7584fcdabe4327f1a061c5610cf89dd Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Fri, 21 Apr 2017 11:56:28 +0200 Subject: [PATCH 3/3] dbus: allow firewalld to communicate with NetworkManager Usually, this "" part is shipped by firewalld's D-Bus policy. However, if firewalld is initially not installed with NetworkManager already running, dbus-daemon seems to cache the missing permission for the D-Bus connection. As a result, when installing and starting firewalld, NetworkManager requests fail until restart: firewall: [0x7f4b83643890,change:"eth1"]: complete: request failed (Rejected send message, 1 matched rules; type="method_call", sender=":1.3" (uid=0 pid=715 comm="/usr/sbin/NetworkManager --no-daemon ") interface="org.fedoraproject.FirewallD1.zone" member="changeZone" error name="(unset)" requested_reply="0" destination=":1.25" (uid=0 pid=1243 comm="/usr/bin/python -Es /usr/sbin/firewalld --nofork -")) https://bugzilla.redhat.com/show_bug.cgi?id=1436770 (cherry picked from commit cc1d409ba886e8e7c33f845790cfc700fcd2d854) --- src/org.freedesktop.NetworkManager.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/org.freedesktop.NetworkManager.conf b/src/org.freedesktop.NetworkManager.conf index e4d1b78ba6..6be1feb68e 100644 --- a/src/org.freedesktop.NetworkManager.conf +++ b/src/org.freedesktop.NetworkManager.conf @@ -27,6 +27,8 @@ + +