From 83b8b9e1f66ca325264cf0108a5a2025a7a9b77c Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Mon, 9 Nov 2015 18:28:36 +0100 Subject: [PATCH] bus-manager: drop private socket With ObjectManager we can not export ObjectSkeletons to multiple connections -- the manager would unexport the InterfaceSkeletons upon its destruction. It seems easiest to just drop the private socket altogether; It was broken for broken for some time and noone noticed anyway. Also startup before D-Bus is still broken: NetworkManager would reconnect to the bus but multiple managers won't notice the bus is around (we'll never see firewalld or policykit come up). We should probably just stop pretending we support operation without a real D-Bus server. With the advent of kdbus this makes even more sense. --- src/nm-bus-manager.c | 75 -------------------------------------------- 1 file changed, 75 deletions(-) diff --git a/src/nm-bus-manager.c b/src/nm-bus-manager.c index 1c09a7b68..ed927959c 100644 --- a/src/nm-bus-manager.c +++ b/src/nm-bus-manager.c @@ -35,9 +35,6 @@ #include "nm-exported-object.h" #include "NetworkManagerUtils.h" -#define PRIV_SOCK_PATH NMRUNDIR "/private" -#define PRIV_SOCK_TAG "private" - enum { DBUS_CONNECTION_CHANGED = 0, PRIVATE_CONNECTION_NEW, @@ -61,7 +58,6 @@ typedef struct { gboolean started; GSList *private_servers; - PrivateServer *priv_server; GDBusProxy *proxy; @@ -565,70 +561,12 @@ nm_bus_manager_get_unix_user (NMBusManager *self, /**************************************************************/ -static void -private_connection_new (NMBusManager *self, GDBusConnection *connection) -{ - NMBusManagerPrivate *priv = NM_BUS_MANAGER_GET_PRIVATE (self); - GHashTableIter iter; - NMExportedObject *object; - const char *path; - GError *error = NULL; - - /* Register all exported objects on this private connection */ - g_hash_table_iter_init (&iter, priv->exported); - while (g_hash_table_iter_next (&iter, (gpointer *) &path, (gpointer *) &object)) { - GSList *interfaces = nm_exported_object_get_interfaces (object); - - nm_assert_exported (self, path, object); - - for (; interfaces; interfaces = interfaces->next) { - GDBusInterfaceSkeleton *interface = G_DBUS_INTERFACE_SKELETON (interfaces->data); - - if (g_dbus_interface_skeleton_export (interface, connection, path, &error)) { - nm_log_trace (LOGD_CORE, "(%s) registered %p (%s) at '%s' on private socket.", - PRIV_SOCK_TAG, object, G_OBJECT_TYPE_NAME (interface), path); - } else { - nm_log_warn (LOGD_CORE, "(%s) could not register %p (%s) at '%s' on private socket: %s.", - PRIV_SOCK_TAG, object, G_OBJECT_TYPE_NAME (interface), path, - error->message); - g_clear_error (&error); - } - } - } -} - -static void -private_server_setup (NMBusManager *self) -{ - NMBusManagerPrivate *priv = NM_BUS_MANAGER_GET_PRIVATE (self); - - /* Skip this step if this is just a test program */ - if (nm_utils_get_testing ()) - return; - - /* Set up our main private DBus socket */ - if (mkdir (NMRUNDIR, 0755) == -1) { - if (errno != EEXIST) - nm_log_warn (LOGD_CORE, "Error creating directory \"%s\": %d (%s)", NMRUNDIR, errno, g_strerror (errno)); - } - priv->priv_server = private_server_new (PRIV_SOCK_PATH, PRIV_SOCK_TAG, self); - if (priv->priv_server) { - priv->private_servers = g_slist_append (priv->private_servers, priv->priv_server); - g_signal_connect (self, - NM_BUS_MANAGER_PRIVATE_CONNECTION_NEW "::" PRIV_SOCK_TAG, - (GCallback) private_connection_new, - NULL); - } -} - static void nm_bus_manager_init (NMBusManager *self) { NMBusManagerPrivate *priv = NM_BUS_MANAGER_GET_PRIVATE (self); priv->exported = g_hash_table_new (g_str_hash, g_str_equal); - - private_server_setup (self); } static void @@ -650,7 +588,6 @@ nm_bus_manager_dispose (GObject *object) g_slist_free_full (priv->private_servers, private_server_free); priv->private_servers = NULL; - priv->priv_server = NULL; nm_bus_manager_cleanup (self); @@ -879,8 +816,6 @@ nm_bus_manager_register_object (NMBusManager *self, NMExportedObject *object) { NMBusManagerPrivate *priv; - GDBusConnection *connection; - GHashTableIter iter; const char *path; GSList *interfaces, *ifs; @@ -915,16 +850,6 @@ nm_bus_manager_register_object (NMBusManager *self, priv->connection, path, NULL); } } - - if (priv->priv_server) { - g_hash_table_iter_init (&iter, priv->priv_server->connections); - while (g_hash_table_iter_next (&iter, (gpointer) &connection, NULL)) { - for (ifs = interfaces; ifs; ifs = ifs->next) { - g_dbus_interface_skeleton_export (G_DBUS_INTERFACE_SKELETON (ifs->data), - connection, path, NULL); - } - } - } } NMExportedObject *