summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2015-09-30 15:27:06 +0200
committerLubomir Rintel <lkundrak@v3.sk>2015-09-30 16:02:48 +0200
commit30a0c3164c67656e25a23a48cdbd6d343cfa724a (patch)
tree1a3e2166471c500ec609ea6d60fa7e4a454c4b34
parenta9b1869d63d3c114bf63b9f11901e6c45a0d4a27 (diff)
downloadNetworkManager-30a0c3164c67656e25a23a48cdbd6d343cfa724a.tar.gz
firewall-manager: handle bus connection failure
-rw-r--r--src/nm-firewall-manager.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/nm-firewall-manager.c b/src/nm-firewall-manager.c
index db7ca0cadc..5e5248a937 100644
--- a/src/nm-firewall-manager.c
+++ b/src/nm-firewall-manager.c
@@ -445,6 +445,7 @@ constructed (GObject *object)
NMFirewallManager *self = (NMFirewallManager *) object;
NMFirewallManagerPrivate *priv = NM_FIREWALL_MANAGER_GET_PRIVATE (self);
gs_free char *owner = NULL;
+ gs_free_error GError *error = NULL;
G_OBJECT_CLASS (nm_firewall_manager_parent_class)->constructed (object);
@@ -455,12 +456,16 @@ constructed (GObject *object)
FIREWALL_DBUS_SERVICE,
FIREWALL_DBUS_PATH,
FIREWALL_DBUS_INTERFACE_ZONE,
- NULL, NULL);
+ NULL, &error);
+ if (priv->proxy) {
+ g_signal_connect (priv->proxy, "notify::g-name-owner",
+ G_CALLBACK (name_owner_changed), self);
+ owner = g_dbus_proxy_get_name_owner (priv->proxy);
+ priv->running = (owner != NULL);
+ } else {
+ _LOGW (NULL, "could not connect to system D-Bus (%s)", error->message);
+ }
- g_signal_connect (priv->proxy, "notify::g-name-owner",
- G_CALLBACK (name_owner_changed), self);
- owner = g_dbus_proxy_get_name_owner (priv->proxy);
- priv->running = (owner != NULL);
_LOGD (NULL, "firewall constructed (%srunning)", priv->running ? "" : "not");
}