userdb.h revision 22535a9e685e29214082878e37a267157044618e
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina#ifndef __USERDB_H
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina#define __USERDB_H
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březinastruct user_data {
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina pool_t pool;
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina char *virtual_user;
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina char *home;
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina char *mail;
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina char *system_user;
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina uid_t uid;
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina gid_t gid;
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina int chroot; /* chroot to home directory */
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina};
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březinatypedef void userdb_callback_t(struct user_data *user, void *context);
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březinastruct userdb_module {
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina void (*init)(const char *args);
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina void (*deinit)(void);
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina void (*lookup)(const char *user, const char *realm,
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina userdb_callback_t *callback, void *context);
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina};
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březinaextern struct userdb_module *userdb;
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březinaextern struct userdb_module userdb_static;
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březinaextern struct userdb_module userdb_passwd;
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březinaextern struct userdb_module userdb_passwd_file;
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březinaextern struct userdb_module userdb_vpopmail;
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březinavoid userdb_init(void);
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březinavoid userdb_deinit(void);
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina#endif
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina