+/*
+ * Copyright (C) 2008 Andre Noll <maan@tuebingen.mpg.de>
+ *
+ * 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. */
char *pw_name;
/** The user table of this user.*/
struct osl_table *table;
- /** Total number of files owned by this user. */
- uint64_t files;
- /** Total number of bytes owned by this user. */
- uint64_t bytes;
- /** Total number of directories that contain at least one file */
- uint64_t dirs;
/** The description of the user table. */
struct osl_table_description *desc;
};
/** 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 free_hash_table(void);
-
int for_each_admissible_user(int (*func)(struct user_info *, void *),
void *data);
int parse_uid_arg(const char *orig_arg, struct uid_range **ur);
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);