24 #define DBUS_USERDB_INCLUDES_PRIVATE 1
25 #include "dbus-userdb.h"
26 #include "dbus-hash.h"
27 #include "dbus-test.h"
28 #include "dbus-internals.h"
29 #include "dbus-protocol.h"
30 #include "dbus-credentials.h"
135 _DBUS_ASSERT_ERROR_IS_CLEAR (error);
147 #ifdef DBUS_ENABLE_USERDB_CACHE
168 _dbus_verbose (
"No cache for user \"%s\"\n",
182 _DBUS_ASSERT_ERROR_IS_SET (error);
191 _DBUS_ASSERT_ERROR_IS_SET (error);
223 static DBusUserDatabase *system_db =
NULL;
228 shutdown_system_db (
void *data)
230 if (system_db !=
NULL)
238 init_system_db (
void)
242 if (system_db ==
NULL)
248 if (system_db ==
NULL)
267 _dbus_warn (
"Could not get password database information for UID of current process: %s\n",
313 database_locked =
TRUE;
322 database_locked =
FALSE;
350 if (system_db !=
NULL)
367 if (!init_system_db ())
372 *username = &process_username;
389 if (!init_system_db ())
394 *homedir = &process_homedir;
411 DBusUserDatabase *db;
450 DBusUserDatabase *db;
496 DBusUserDatabase *db;
533 DBusUserDatabase *db;
544 if (db->users ==
NULL)
550 if (db->groups ==
NULL)
555 if (db->users_by_name ==
NULL)
560 if (db->groups_by_name ==
NULL)
582 #ifdef DBUS_BUILD_TESTS
589 _dbus_user_database_ref (DBusUserDatabase *db)
609 if (db->refcount == 0)
617 if (db->users_by_name)
620 if (db->groups_by_name)
644 return *info !=
NULL;
663 return *info !=
NULL;