summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2017-12-20 21:07:49 +0100
committerThomas Haller <thaller@redhat.com>2017-12-24 17:17:58 +0100
commit53fe565f5685d083e7ec53ebeab270b24c3ca36f (patch)
tree868caf647a2d2bcb58f3f095a3e17a90a9382f62
parent6a317d9037dc8098b11dcd73a9744bb0265f3287 (diff)
downloadNetworkManager-53fe565f5685d083e7ec53ebeab270b24c3ca36f.tar.gz
core: inline creation of private server in nm_bus_manager_private_server_register()
private_server_free() had only one caller: nm_bus_manager_private_server_register(). The only thing that nm_bus_manager_private_server_register() did in addition was to check for duplicate server tags. Merge the two functions.
-rw-r--r--src/nm-bus-manager.c85
1 files changed, 37 insertions, 48 deletions
diff --git a/src/nm-bus-manager.c b/src/nm-bus-manager.c
index 8a1f2c3a38..35aeb66020 100644
--- a/src/nm-bus-manager.c
+++ b/src/nm-bus-manager.c
@@ -268,11 +268,30 @@ private_server_authorize (GDBusAuthObserver *observer,
return g_credentials_get_unix_user (credentials, NULL) == 0;
}
-static PrivateServer *
-private_server_new (NMBusManager *self,
- const char *path,
- const char *tag)
+static void
+private_server_free (gpointer ptr)
+{
+ PrivateServer *s = ptr;
+
+ c_list_unlink_stale (&s->private_servers_lst);
+
+ unlink (s->address);
+ g_free (s->address);
+ g_hash_table_destroy (s->obj_managers);
+
+ g_dbus_server_stop (s->server);
+
+ g_object_unref (s->server);
+
+ g_slice_free (PrivateServer, s);
+}
+
+void
+nm_bus_manager_private_server_register (NMBusManager *self,
+ const char *path,
+ const char *tag)
{
+ NMBusManagerPrivate *priv;
PrivateServer *s;
gs_unref_object GDBusAuthObserver *auth_observer = NULL;
GDBusServer *server;
@@ -280,6 +299,18 @@ private_server_new (NMBusManager *self,
gs_free char *address = NULL;
gs_free char *guid = NULL;
+ g_return_if_fail (NM_IS_BUS_MANAGER (self));
+ g_return_if_fail (path);
+ g_return_if_fail (tag);
+
+ priv = NM_BUS_MANAGER_GET_PRIVATE (self);
+
+ /* Only one instance per tag; but don't warn */
+ c_list_for_each_entry (s, &priv->private_servers_lst_head, private_servers_lst) {
+ if (nm_streq0 (tag, s->tag))
+ return;
+ }
+
unlink (path);
address = g_strdup_printf ("unix:path=%s", path);
@@ -299,7 +330,7 @@ private_server_new (NMBusManager *self,
_LOGW ("(%s) failed to set up private socket %s: %s",
tag, address, error->message);
g_error_free (error);
- return NULL;
+ return;
}
s = g_slice_new0 (PrivateServer);
@@ -315,51 +346,9 @@ private_server_new (NMBusManager *self,
s->detail = g_quark_from_string (tag);
s->tag = g_quark_to_string (s->detail);
- c_list_link_tail (&NM_BUS_MANAGER_GET_PRIVATE (self)->private_servers_lst_head, &s->private_servers_lst);
+ c_list_link_tail (&priv->private_servers_lst_head, &s->private_servers_lst);
g_dbus_server_start (server);
-
- return s;
-}
-
-static void
-private_server_free (gpointer ptr)
-{
- PrivateServer *s = ptr;
-
- c_list_unlink_stale (&s->private_servers_lst);
-
- unlink (s->address);
- g_free (s->address);
- g_hash_table_destroy (s->obj_managers);
-
- g_dbus_server_stop (s->server);
- g_object_unref (s->server);
-
- g_slice_free (PrivateServer, s);
-}
-
-void
-nm_bus_manager_private_server_register (NMBusManager *self,
- const char *path,
- const char *tag)
-{
- NMBusManagerPrivate *priv;
- PrivateServer *s;
-
- g_return_if_fail (NM_IS_BUS_MANAGER (self));
- g_return_if_fail (path);
- g_return_if_fail (tag);
-
- priv = NM_BUS_MANAGER_GET_PRIVATE (self);
-
- /* Only one instance per tag; but don't warn */
- c_list_for_each_entry (s, &priv->private_servers_lst_head, private_servers_lst) {
- if (nm_streq0 (tag, s->tag))
- return;
- }
-
- private_server_new (self, path, tag);
}
static const char *