userdb.h revision ba3a54872528db0eae3f36e45592219965b9faf8
2454dfa32c93c20a8522c6ed42fe057baaac9f9aStephan Bosch#ifndef __USERDB_H
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainen#define __USERDB_H
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainen
47e0598840ecffa364ebed523e06939e22738f06Timo Sirainen#include "auth-request.h"
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainen
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainenstruct user_data {
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainen const char *virtual_user;
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainen const char *home;
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainen const char *mail;
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainen
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainen const char *system_user;
95a1a5195d56f3cf5d1e529aad668f87ad3b979bTimo Sirainen uid_t uid;
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainen gid_t gid;
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainen};
1d738cce754bc64bbc66d3355ebdaf3f6eac55f1Timo Sirainen
2a6af811ea3de3cf9e2f15e446674dd21b0705f3Timo Sirainentypedef void userdb_callback_t(const struct user_data *user, void *context);
bdd7a96c363346f7c38f389791be1487ca08775bTimo Sirainen
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainenstruct userdb_module {
63e2edd14ae7b1dc4a08e2e659501dbf519462f9Timo Sirainen const char *name;
f9f30736bc6e4cf535085824e7e124506fe2dbbbTimo Sirainen
ce9d23c7c1e621398d2572a1d95171136f7ef6a2Timo Sirainen void (*preinit)(const char *args);
63e2edd14ae7b1dc4a08e2e659501dbf519462f9Timo Sirainen void (*init)(const char *args);
e34d170f8f0e084bd94bfbc1a7085ece67e508dfTimo Sirainen void (*deinit)(void);
029cfcdce65b284d5230adf1c920a5f526b03b5cTimo Sirainen
029cfcdce65b284d5230adf1c920a5f526b03b5cTimo Sirainen void (*lookup)(struct auth_request *auth_request,
029cfcdce65b284d5230adf1c920a5f526b03b5cTimo Sirainen userdb_callback_t *callback, void *context);
e34d170f8f0e084bd94bfbc1a7085ece67e508dfTimo Sirainen};
e34d170f8f0e084bd94bfbc1a7085ece67e508dfTimo Sirainen
029cfcdce65b284d5230adf1c920a5f526b03b5cTimo Sirainenuid_t userdb_parse_uid(struct auth_request *request, const char *str);
029cfcdce65b284d5230adf1c920a5f526b03b5cTimo Sirainengid_t userdb_parse_gid(struct auth_request *request, const char *str);
90c23747727c85f80e4e8eed7968f0edbeac7ac5Timo Sirainen
90c23747727c85f80e4e8eed7968f0edbeac7ac5Timo Sirainenvoid userdb_preinit(struct auth *auth, const char *data);
90c23747727c85f80e4e8eed7968f0edbeac7ac5Timo Sirainenvoid userdb_init(struct auth *auth);
90c23747727c85f80e4e8eed7968f0edbeac7ac5Timo Sirainenvoid userdb_deinit(struct auth *auth);
90c23747727c85f80e4e8eed7968f0edbeac7ac5Timo Sirainen
e925f007930955f10fa8728509a44f7a53d2b13eTimo Sirainen#endif
90c23747727c85f80e4e8eed7968f0edbeac7ac5Timo Sirainen