X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dbus%2Fdbus-userdb.h;h=d6b72d8cf1ca8166863087e82077c0084b26521c;hb=3ccb027c907f9ee2890028e83b60296204bbf478;hp=c66031f69ca86cec74954fedeaea1823e6bc1637;hpb=a9ff341aa66588c12275529ee2d16843b493cb4f;p=platform%2Fupstream%2Fdbus.git diff --git a/dbus/dbus-userdb.h b/dbus/dbus-userdb.h index c66031f..d6b72d8 100644 --- a/dbus/dbus-userdb.h +++ b/dbus/dbus-userdb.h @@ -1,4 +1,4 @@ -/* -*- mode: C; c-file-style: "gnu" -*- */ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* dbus-userdb.h User database abstraction * * Copyright (C) 2003 Red Hat, Inc. @@ -17,27 +17,45 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #ifndef DBUS_USERDB_H #define DBUS_USERDB_H -#include +#include + +#ifdef DBUS_WIN +#error "Don't include this on Windows" +#endif DBUS_BEGIN_DECLS typedef struct DBusUserDatabase DBusUserDatabase; +#ifdef DBUS_USERDB_INCLUDES_PRIVATE +#include + +/** + * Internals of DBusUserDatabase + */ +struct DBusUserDatabase +{ + int refcount; /**< Reference count */ + + DBusHashTable *users; /**< Users in the database by UID */ + DBusHashTable *groups; /**< Groups in the database by GID */ + DBusHashTable *users_by_name; /**< Users in the database by name */ + DBusHashTable *groups_by_name; /**< Groups in the database by name */ + +}; + + DBusUserDatabase* _dbus_user_database_new (void); DBusUserDatabase* _dbus_user_database_ref (DBusUserDatabase *db); +void _dbus_user_database_flush (DBusUserDatabase *db); void _dbus_user_database_unref (DBusUserDatabase *db); -dbus_bool_t _dbus_user_database_get_groups (DBusUserDatabase *db, - dbus_uid_t uid, - dbus_gid_t **group_ids, - int *n_group_ids, - DBusError *error); dbus_bool_t _dbus_user_database_get_uid (DBusUserDatabase *db, dbus_uid_t uid, const DBusUserInfo **info, @@ -55,28 +73,48 @@ dbus_bool_t _dbus_user_database_get_groupname (DBusUserDatabase *db, const DBusGroupInfo **info, DBusError *error); +DBusUserInfo* _dbus_user_database_lookup (DBusUserDatabase *db, + dbus_uid_t uid, + const DBusString *username, + DBusError *error); +DBusGroupInfo* _dbus_user_database_lookup_group (DBusUserDatabase *db, + dbus_gid_t gid, + const DBusString *groupname, + DBusError *error); +void _dbus_user_info_free_allocated (DBusUserInfo *info); +void _dbus_group_info_free_allocated (DBusGroupInfo *info); +#endif /* DBUS_USERDB_INCLUDES_PRIVATE */ DBusUserDatabase* _dbus_user_database_get_system (void); -void _dbus_user_database_lock_system (void); +dbus_bool_t _dbus_user_database_lock_system (void) _DBUS_GNUC_WARN_UNUSED_RESULT; void _dbus_user_database_unlock_system (void); +void _dbus_user_database_flush_system (void); -dbus_bool_t _dbus_username_from_current_process (const DBusString **username); -dbus_bool_t _dbus_homedir_from_current_process (const DBusString **homedir); -dbus_bool_t _dbus_homedir_from_username (const DBusString *username, - DBusString *homedir); dbus_bool_t _dbus_get_user_id (const DBusString *username, dbus_uid_t *uid); dbus_bool_t _dbus_get_group_id (const DBusString *group_name, dbus_gid_t *gid); -dbus_bool_t _dbus_uid_from_string (const DBusString *uid_str, - dbus_uid_t *uid); -dbus_bool_t _dbus_credentials_from_username (const DBusString *username, - DBusCredentials *credentials); +dbus_bool_t _dbus_get_user_id_and_primary_group (const DBusString *username, + dbus_uid_t *uid_p, + dbus_gid_t *gid_p); dbus_bool_t _dbus_credentials_from_uid (dbus_uid_t user_id, DBusCredentials *credentials); +dbus_bool_t _dbus_groups_from_uid (dbus_uid_t uid, + dbus_gid_t **group_ids, + int *n_group_ids); dbus_bool_t _dbus_is_console_user (dbus_uid_t uid, DBusError *error); +dbus_bool_t _dbus_is_a_number (const DBusString *str, + unsigned long *num); + +dbus_bool_t _dbus_username_from_current_process (const DBusString **username); +dbus_bool_t _dbus_homedir_from_current_process (const DBusString **homedir); +dbus_bool_t _dbus_homedir_from_username (const DBusString *username, + DBusString *homedir); + +dbus_bool_t _dbus_homedir_from_uid (dbus_uid_t uid, + DBusString *homedir); DBUS_END_DECLS