/** * Gets group ID given groupname * * @param groupname the groupname * @param gid return location for GID * @returns #TRUE if group name existed and we got the GID */ dbus_bool_t _dbus_get_group_id (const DBusString *groupname, dbus_gid_t *gid) { DBusUserDatabase *db; const DBusGroupInfo *info; _dbus_user_database_lock_system (); db = _dbus_user_database_get_system (); if (db == NULL) { _dbus_user_database_unlock_system (); return FALSE; } if (!_dbus_user_database_get_groupname (db, groupname, &info, NULL)) { _dbus_user_database_unlock_system (); return FALSE; } *gid = info->gid; _dbus_user_database_unlock_system (); return TRUE; }
/** * Gets group ID given groupname * * @param groupname the groupname * @param gid return location for GID * @returns #TRUE if group name existed and we got the GID */ dbus_bool_t _dbus_get_group_id (const DBusString *groupname, dbus_gid_t *gid) { DBusUserDatabase *db; const DBusGroupInfo *info; /* FIXME: this can't distinguish ENOMEM from other errors */ if (!_dbus_user_database_lock_system ()) return FALSE; db = _dbus_user_database_get_system (); if (db == NULL) { _dbus_user_database_unlock_system (); return FALSE; } if (!_dbus_user_database_get_groupname (db, groupname, &info, NULL)) { _dbus_user_database_unlock_system (); return FALSE; } *gid = info->gid; _dbus_user_database_unlock_system (); return TRUE; }