diff options
author | Thomas Haller <thaller@redhat.com> | 2017-12-20 21:07:49 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2017-12-24 17:17:58 +0100 |
commit | 53fe565f5685d083e7ec53ebeab270b24c3ca36f (patch) | |
tree | 868caf647a2d2bcb58f3f095a3e17a90a9382f62 | |
parent | 6a317d9037dc8098b11dcd73a9744bb0265f3287 (diff) | |
download | NetworkManager-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.c | 85 |
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 * |