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",
314 database_locked =
TRUE;
329 database_locked =
FALSE;
361 if (system_db !=
NULL)
380 if (!init_system_db ())
385 *username = &process_username;
404 if (!init_system_db ())
409 *homedir = &process_homedir;
426 DBusUserDatabase *db;
468 DBusUserDatabase *db;
517 DBusUserDatabase *db;
556 DBusUserDatabase *db;
567 if (db->users ==
NULL)
573 if (db->groups ==
NULL)
578 if (db->users_by_name ==
NULL)
583 if (db->groups_by_name ==
NULL)
605 #ifdef DBUS_BUILD_TESTS
612 _dbus_user_database_ref (DBusUserDatabase *db)
632 if (db->refcount == 0)
640 if (db->users_by_name)
643 if (db->groups_by_name)
667 return *info !=
NULL;
686 return *info !=
NULL;