view src/auth/userdb.h @ 3043:8b80b69938f0 HEAD

If UID or GID isn't numeric, look it up from passwd/group.
author Timo Sirainen <tss@iki.fi>
date Thu, 06 Jan 2005 22:13:26 +0200
parents c7d426f8cb58
children 5e2e4cdbfe2e
line wrap: on
line source

#ifndef __USERDB_H
#define __USERDB_H

#include "mech.h"

struct user_data {
	const char *virtual_user;
	const char *home;
	const char *mail;

	const char *system_user;
	uid_t uid;
	gid_t gid;
};

typedef void userdb_callback_t(const struct user_data *user, void *context);

struct userdb_module {
	const char *name;

	void (*preinit)(const char *args);
	void (*init)(const char *args);
	void (*deinit)(void);

	void (*lookup)(struct auth_request *auth_request,
		       userdb_callback_t *callback, void *context);
};

extern struct userdb_module *userdb;

extern struct userdb_module userdb_static;
extern struct userdb_module userdb_passwd;
extern struct userdb_module userdb_passwd_file;
extern struct userdb_module userdb_vpopmail;
extern struct userdb_module userdb_ldap;
extern struct userdb_module userdb_sql;

uid_t userdb_parse_uid(struct auth_request *request, const char *str);
gid_t userdb_parse_gid(struct auth_request *request, const char *str);

void userdb_preinit(void);
void userdb_init(void);
void userdb_deinit(void);

#endif