| From 7567ea478b7235bc19569c8da99a30b56af6473e Mon Sep 17 00:00:00 2001 |
| Message-Id: <7567ea478b7235bc19569c8da99a30b56af6473e.1381871412.git.jdenemar@redhat.com> |
| From: Peter Krempa <pkrempa@redhat.com> |
| Date: Mon, 14 Oct 2013 16:45:23 +0100 |
| Subject: [PATCH] nwfilter: Don't fail to start if DBus isn't available |
| |
| For |
| |
| https://bugzilla.redhat.com/show_bug.cgi?id=927072 |
| |
| When the daemon is compiled with firewalld support but the DBus message |
| bus isn't started in the system, the initialization of the nwfilter |
| driver fails even if there are fallback options. |
| |
| (cherry picked from commit e0e61b4cf75f246b9bc50452a307e1e4d996df4c) |
| |
| Signed-off-by: Jiri Denemark <jdenemar@redhat.com> |
| |
| src/nwfilter/nwfilter_driver.c | 9 +++++++-- |
| 1 file changed, 7 insertions(+), 2 deletions(-) |
| |
| diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c |
| index ce75c82..d25c6f2 100644 |
| |
| |
| @@ -175,7 +175,8 @@ nwfilterStateInitialize(bool privileged, |
| DBusConnection *sysbus = NULL; |
| |
| #if WITH_DBUS |
| - sysbus = virDBusGetSystemBus(); |
| + if (virDBusHasSystemBus()) |
| + sysbus = virDBusGetSystemBus(); |
| #endif /* WITH_DBUS */ |
| |
| if (VIR_ALLOC(driverState) < 0) |
| @@ -184,6 +185,7 @@ nwfilterStateInitialize(bool privileged, |
| if (virMutexInit(&driverState->lock) < 0) |
| goto err_free_driverstate; |
| |
| + /* remember that we are going to use firewalld */ |
| driverState->watchingFirewallD = (sysbus != NULL); |
| driverState->privileged = privileged; |
| |
| @@ -209,7 +211,8 @@ nwfilterStateInitialize(bool privileged, |
| * startup the DBus late so we don't get a reload signal while |
| * initializing |
| */ |
| - if (nwfilterDriverInstallDBusMatches(sysbus) < 0) { |
| + if (sysbus && |
| + nwfilterDriverInstallDBusMatches(sysbus) < 0) { |
| VIR_ERROR(_("DBus matches could not be installed. Disabling nwfilter " |
| "driver")); |
| /* |
| @@ -217,6 +220,8 @@ nwfilterStateInitialize(bool privileged, |
| * may have caused the ebiptables driver to use the firewall tool |
| * but now that the watches don't work, we just disable the nwfilter |
| * driver |
| + * |
| + * This may only happen if the system bus is available. |
| */ |
| goto error; |
| } |
| -- |
| 1.8.3.2 |
| |