From eaefe03a8891b84e3f9e1f99f9098d65567e3092 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Sat, 28 Oct 2006 01:41:37 +0000 Subject: 2006-10-27 Havoc Pennington * dbus/dbus-test.c: enclose more of the file in the DBUS_BUILD_TESTS check. * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for DBUS_DISABLE_ASSERT case. * dbus/dbus-connection.c (dbus_connection_get_unix_user): document that it only works on the server side * dbus/dbus-bus.c: add a global lock covering the BusData we attach to each connection (internal_bus_get): lock our access to the BusData (dbus_bus_register): lock the entire registration process with _DBUS_LOCK(bus_datas). If we get the lock and registration is already complete, silently return (vs. previous behavior of aborting). (dbus_bus_set_unique_name): lock the BusData (dbus_bus_get_unique_name): lock the BusData --- dbus/dbus-connection.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'dbus/dbus-connection.c') diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c index e2debdd0..db625588 100644 --- a/dbus/dbus-connection.c +++ b/dbus/dbus-connection.c @@ -4752,11 +4752,20 @@ dbus_connection_get_socket(DBusConnection *connection, /** - * Gets the UNIX user ID of the connection if any. - * Returns #TRUE if the uid is filled in. - * Always returns #FALSE on non-UNIX platforms. - * Always returns #FALSE prior to authenticating the - * connection. + * Gets the UNIX user ID of the connection if known. Returns #TRUE if + * the uid is filled in. Always returns #FALSE on non-UNIX platforms. + * Always returns #FALSE prior to authenticating the connection. + * + * The UID is only read by servers from clients; clients can't usually + * get the UID of servers, because servers do not authenticate to + * clients. The returned UID is the UID the connection authenticated + * as. + * + * The message bus is a server and the apps connecting to the bus + * are clients. + * + * You can ask the bus to tell you the UID of another connection though + * if you like; this is done with dbus_bus_get_unix_user(). * * @param connection the connection * @param uid return location for the user ID -- cgit