+/*
+ * Copyright (C) 2008 Andre Noll <maan@systemlinux.org>
+ *
+ * Licensed under the GPL v2. For licencing details see COPYING.
+ */
+
+/** \file user.h \brief User structures and exported symbols from user.c. */
+
/** The columns of the id table. */
enum user_table_columns {
/** The numer of the directory. */
/** An opaque struct that contains info about which users are admissible. */
struct uid_range;
-enum search_uid_flags {
- OPEN_USER_TABLE = 1,
- CREATE_USER_TABLE = 2,
-};
-int search_uid(uint32_t uid, struct uid_range *urs,
- enum search_uid_flags flags, struct user_info **ui_ptr);
-
-int read_uid_file(struct uid_range *admissible_uids);
+int create_user_table(uint32_t uid, struct user_info **ui_ptr);
+int read_uid_file(void);
int write_uid_file(void);
void create_hash_table(unsigned bits);
-void sort_hash_table(int (*comp)(const void *, const void *));
+void sort_hash_table(int (*comp)(struct user_info *, struct user_info *));
int for_each_admissible_user(int (*func)(struct user_info *, void *),
void *data);
int append_users(char **users, int num_users,
struct uid_range **admissible_uids, int num_uid_ranges);
void close_user_tables(void);
+int open_admissible_user_tables(struct uid_range *admissible_uids);