From 84a6147f80691d171dadcc8ece349e44291ab51b Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Wed, 15 Dec 2021 11:41:05 +0000 Subject: [PATCH 1/2] sysdeps: Make some functions Windows-specific _dbus_daemon_publish_session_bus_address had an empty implementation but was never actually called on Unix, and _dbus_daemon_is_session_bus_address_published wasn't even implemented. Move them to the Windows-specific header to indicate that interface changes here would only affect other Windows-specific code. Signed-off-by: Simon McVittie --- dbus/dbus-sysdeps-unix.c | 8 -------- dbus/dbus-sysdeps-win.h | 4 ++++ dbus/dbus-sysdeps.h | 4 ---- 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c index e585136f..94c2be30 100644 --- a/dbus/dbus-sysdeps-unix.c +++ b/dbus/dbus-sysdeps-unix.c @@ -4632,14 +4632,6 @@ _dbus_append_keyring_directory_for_credentials (DBusString *directory, return FALSE; } -//PENDING(kdab) docs -dbus_bool_t -_dbus_daemon_publish_session_bus_address (const char* addr, - const char *scope) -{ - return TRUE; -} - //PENDING(kdab) docs void _dbus_daemon_unpublish_session_bus_address (void) diff --git a/dbus/dbus-sysdeps-win.h b/dbus/dbus-sysdeps-win.h index 52db915b..82a36eab 100644 --- a/dbus/dbus-sysdeps-win.h +++ b/dbus/dbus-sysdeps-win.h @@ -110,6 +110,10 @@ dbus_bool_t _dbus_win_event_wait (HANDLE handle, int timeout, DBusError *error); DBUS_PRIVATE_EXPORT dbus_bool_t _dbus_win_event_free (HANDLE handle, DBusError *error); +dbus_bool_t _dbus_daemon_is_session_bus_address_published (const char *scope); +dbus_bool_t _dbus_daemon_publish_session_bus_address (const char *address, + const char *shm_name); + #endif /** @} end of sysdeps-win.h */ diff --git a/dbus/dbus-sysdeps.h b/dbus/dbus-sysdeps.h index a91c61e3..e7e36ad6 100644 --- a/dbus/dbus-sysdeps.h +++ b/dbus/dbus-sysdeps.h @@ -307,10 +307,6 @@ dbus_bool_t _dbus_windows_user_is_process_owner (const char *windows_sid) dbus_bool_t _dbus_append_keyring_directory_for_credentials (DBusString *directory, DBusCredentials *credentials); -dbus_bool_t _dbus_daemon_is_session_bus_address_published (const char *scope); - -dbus_bool_t _dbus_daemon_publish_session_bus_address (const char* address, const char* shm_name); - void _dbus_daemon_unpublish_session_bus_address (void); dbus_bool_t _dbus_socket_can_pass_unix_fd(DBusSocket fd); From aaa515f47df22eeaebda18f1b5c151e71bdf1bd6 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Wed, 15 Dec 2021 11:49:20 +0000 Subject: [PATCH 2/2] sysdeps: Document _dbus_daemon_unpublish_session_bus_address Signed-off-by: Simon McVittie --- dbus/dbus-sysdeps-unix.c | 3 +-- dbus/dbus-sysdeps-win.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c index 94c2be30..8743589f 100644 --- a/dbus/dbus-sysdeps-unix.c +++ b/dbus/dbus-sysdeps-unix.c @@ -4632,11 +4632,10 @@ _dbus_append_keyring_directory_for_credentials (DBusString *directory, return FALSE; } -//PENDING(kdab) docs +/* Documented in dbus-sysdeps-win.c, does nothing on Unix */ void _dbus_daemon_unpublish_session_bus_address (void) { - } /** diff --git a/dbus/dbus-sysdeps-win.c b/dbus/dbus-sysdeps-win.c index 950d900a..43350cc7 100644 --- a/dbus/dbus-sysdeps-win.c +++ b/dbus/dbus-sysdeps-win.c @@ -3127,6 +3127,22 @@ _dbus_daemon_publish_session_bus_address (const char* address, const char *scope return TRUE; } +/** + * Clear the platform-specific centralized location where the session + * bus address is published. + * + * This must only be called if \ref DBusServer.published_address is #TRUE, + * which is be the case if and only if platform-specific code has published + * the address centrally. + * + * On Windows, this is implemented by closing a global shared memory segment. + * + * On Unix, the session bus address is not published in a centralized + * location by libdbus, so this function does nothing. The closest + * equivalent on Unix is that the session bus address is published by the + * dbus-launch tool, and unpublished automatically when the dbus-launch + * tool exits. + */ void _dbus_daemon_unpublish_session_bus_address (void) {