diff options
author | Lubomir Rintel <lkundrak@v3.sk> | 2015-09-30 15:27:06 +0200 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2015-09-30 16:02:48 +0200 |
commit | 30a0c3164c67656e25a23a48cdbd6d343cfa724a (patch) | |
tree | 1a3e2166471c500ec609ea6d60fa7e4a454c4b34 | |
parent | a9b1869d63d3c114bf63b9f11901e6c45a0d4a27 (diff) | |
download | NetworkManager-30a0c3164c67656e25a23a48cdbd6d343cfa724a.tar.gz |
firewall-manager: handle bus connection failure
-rw-r--r-- | src/nm-firewall-manager.c | 15 |
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"); } |