[dovecot-cvs] dovecot/src/auth auth-request.c, 1.34,
1.35 auth-worker-client.c, 1.16, 1.17 userdb-ldap.c, 1.34,
1.35 userdb-passdb.c, 1.8, 1.9 userdb-passwd-file.c, 1.17,
1.18 userdb-passwd.c, 1.17, 1.18 userdb-sql.c, 1.11,
1.12 userdb-static.c, 1.16, 1.17 userdb-vpopmail.c, 1.18,
1.19 userdb.c, 1.21, 1.22 userdb.h, 1.23, 1.24
cras at dovecot.org
cras at dovecot.org
Sun Oct 16 17:34:42 EEST 2005
- Previous message: [dovecot-cvs]
dovecot/src/auth auth-cache.c, 1.13, 1.14 auth-cache.h,
1.2, 1.3 auth-request.c, 1.33, 1.34 auth-worker-client.c, 1.15,
1.16 auth.c, 1.18, 1.19 db-ldap.c, 1.31, 1.32 db-passwd-file.c,
1.15, 1.16 db-passwd-file.h, 1.6, 1.7 passdb-bsdauth.c, 1.12,
1.13 passdb-checkpassword.c, 1.10, 1.11 passdb-ldap.c, 1.33,
1.34 passdb-pam.c, 1.28, 1.29 passdb-passwd-file.c, 1.21,
1.22 passdb-passwd.c, 1.15, 1.16 passdb-shadow.c, 1.16,
1.17 passdb-sql.c, 1.21, 1.22 passdb-vpopmail.c, 1.22,
1.23 passdb.c, 1.37, 1.38 passdb.h, 1.28,
1.29 userdb-passwd-file.c, 1.16, 1.17
- Next message: [dovecot-cvs] dovecot-lda/src deliver.c,1.30,1.31
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /var/lib/cvs/dovecot/src/auth
In directory talvi:/tmp/cvs-serv4884
Modified Files:
auth-request.c auth-worker-client.c userdb-ldap.c
userdb-passdb.c userdb-passwd-file.c userdb-passwd.c
userdb-sql.c userdb-static.c userdb-vpopmail.c userdb.c
userdb.h
Log Message:
Separated userdb_module's interface and the actual data struct.
Now it's possible to have multiple userdbs of same type but with different
settings.
Index: auth-request.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/auth-request.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -d -r1.34 -r1.35
--- auth-request.c 16 Oct 2005 14:06:59 -0000 1.34
+++ auth-request.c 16 Oct 2005 14:34:39 -0000 1.35
@@ -464,7 +464,7 @@
if (userdb->blocking)
userdb_blocking_lookup(request);
else
- userdb->lookup(request, auth_request_userdb_callback);
+ userdb->iface->lookup(request, auth_request_userdb_callback);
}
int auth_request_set_username(struct auth_request *request,
Index: auth-worker-client.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/auth-worker-client.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- auth-worker-client.c 16 Oct 2005 14:06:59 -0000 1.16
+++ auth-worker-client.c 16 Oct 2005 14:34:39 -0000 1.17
@@ -273,7 +273,7 @@
}
}
- auth_request->userdb->userdb->
+ auth_request->userdb->userdb->iface->
lookup(auth_request, lookup_user_callback);
}
Index: userdb-ldap.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/userdb-ldap.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -d -r1.34 -r1.35
--- userdb-ldap.c 7 Aug 2005 11:41:19 -0000 1.34
+++ userdb-ldap.c 16 Oct 2005 14:34:39 -0000 1.35
@@ -13,8 +13,10 @@
#include <ldap.h>
#include <stdlib.h>
-static const char *default_attr_map[] = {
- "", "home", "mail", "system_user", "uid", "gid", NULL
+struct ldap_userdb_module {
+ struct userdb_module module;
+
+ struct ldap_connection *conn;
};
struct userdb_ldap_request {
@@ -23,7 +25,9 @@
userdb_callback_t *userdb_callback;
};
-static struct ldap_connection *userdb_ldap_conn;
+static const char *default_attr_map[] = {
+ "", "home", "mail", "system_user", "uid", "gid", NULL
+};
static int append_uid_list(struct auth_request *auth_request,
struct auth_stream_reply *reply,
@@ -75,7 +79,7 @@
attr = ldap_first_attribute(conn->ld, entry, &ber);
while (attr != NULL) {
- name = hash_lookup(userdb_ldap_conn->user_attr_map, attr);
+ name = hash_lookup(conn->user_attr_map, attr);
vals = ldap_get_values(conn->ld, entry, attr);
if (name != NULL && vals != NULL && vals[0] != NULL) {
@@ -165,10 +169,12 @@
static void userdb_ldap_lookup(struct auth_request *auth_request,
userdb_callback_t *callback)
{
- struct ldap_connection *conn = userdb_ldap_conn;
+ struct userdb_module *_module = auth_request->userdb->userdb;
+ struct ldap_userdb_module *module =
+ (struct ldap_userdb_module *)_module;
+ struct ldap_connection *conn = module->conn;
const struct var_expand_table *vars;
- const char **attr_names =
- (const char **)userdb_ldap_conn->user_attr_names;
+ const char **attr_names = (const char **)conn->user_attr_names;
struct userdb_ldap_request *request;
const char *filter, *base;
string_t *str;
@@ -193,37 +199,46 @@
base, conn->set.scope, filter,
t_strarray_join(attr_names, ","));
- db_ldap_search(conn, base, conn->set.ldap_scope,
- filter, userdb_ldap_conn->user_attr_names,
- &request->request);
+ db_ldap_search(conn, base, conn->set.ldap_scope, filter,
+ conn->user_attr_names, &request->request);
}
-static void userdb_ldap_preinit(const char *args)
+static struct userdb_module *
+userdb_ldap_preinit(struct auth_userdb *auth_userdb, const char *args)
{
- userdb_ldap_conn = db_ldap_init(args);
- userdb_ldap_conn->user_attr_map =
- hash_create(default_pool, userdb_ldap_conn->pool, 0, str_hash,
+ struct ldap_userdb_module *module;
+ struct ldap_connection *conn;
+
+ module = p_new(auth_userdb->auth->pool, struct ldap_userdb_module, 1);
+ module->conn = conn = db_ldap_init(args);
+ conn->user_attr_map =
+ hash_create(default_pool, conn->pool, 0, str_hash,
(hash_cmp_callback_t *)strcmp);
- db_ldap_set_attrs(userdb_ldap_conn, userdb_ldap_conn->set.user_attrs,
- &userdb_ldap_conn->user_attr_names,
- userdb_ldap_conn->user_attr_map,
- default_attr_map);
+ db_ldap_set_attrs(conn, conn->set.user_attrs, &conn->user_attr_names,
+ conn->user_attr_map, default_attr_map);
+ return &module->module;
}
-static void userdb_ldap_init(const char *args __attr_unused__)
+static void userdb_ldap_init(struct userdb_module *_module,
+ const char *args __attr_unused__)
{
- (void)db_ldap_connect(userdb_ldap_conn);
+ struct ldap_userdb_module *module =
+ (struct ldap_userdb_module *)_module;
+
+ (void)db_ldap_connect(module->conn);
}
-static void userdb_ldap_deinit(void)
+static void userdb_ldap_deinit(struct userdb_module *_module)
{
- db_ldap_unref(userdb_ldap_conn);
+ struct ldap_userdb_module *module =
+ (struct ldap_userdb_module *)_module;
+
+ db_ldap_unref(module->conn);
}
-struct userdb_module userdb_ldap = {
+struct userdb_module_interface userdb_ldap = {
"ldap",
- FALSE,
userdb_ldap_preinit,
userdb_ldap_init,
Index: userdb-passdb.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/userdb-passdb.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- userdb-passdb.c 14 Aug 2005 18:25:22 -0000 1.8
+++ userdb-passdb.c 16 Oct 2005 14:34:39 -0000 1.9
@@ -90,9 +90,8 @@
t_pop();
}
-struct userdb_module userdb_passdb = {
+struct userdb_module_interface userdb_passdb = {
"passdb",
- FALSE,
NULL,
NULL,
Index: userdb-passwd-file.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/userdb-passwd-file.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- userdb-passwd-file.c 16 Oct 2005 14:06:59 -0000 1.17
+++ userdb-passwd-file.c 16 Oct 2005 14:34:39 -0000 1.18
@@ -8,15 +8,22 @@
#include "userdb.h"
#include "db-passwd-file.h"
-struct db_passwd_file *userdb_pwf = NULL;
+struct passwd_file_userdb_module {
+ struct userdb_module module;
+
+ struct db_passwd_file *pwf;
+};
static void passwd_file_lookup(struct auth_request *auth_request,
userdb_callback_t *callback)
{
+ struct userdb_module *_module = auth_request->userdb->userdb;
+ struct passwd_file_userdb_module *module =
+ (struct passwd_file_userdb_module *)_module;
struct auth_stream_reply *reply;
struct passwd_user *pu;
- pu = db_passwd_file_lookup(userdb_pwf, auth_request);
+ pu = db_passwd_file_lookup(module->pwf, auth_request);
if (pu == NULL) {
callback(NULL, auth_request);
return;
@@ -35,21 +42,37 @@
callback(reply, auth_request);
}
-static void passwd_file_init(const char *args)
+static struct userdb_module *
+passwd_file_preinit(struct auth_userdb *auth_userdb,
+ const char *args __attr_unused__)
{
- userdb_pwf = db_passwd_file_parse(args, TRUE);
+ struct passwd_file_userdb_module *module;
+
+ module = p_new(auth_userdb->auth->pool,
+ struct passwd_file_userdb_module, 1);
+ return &module->module;
}
-static void passwd_file_deinit(void)
+static void passwd_file_init(struct userdb_module *_module, const char *args)
{
- db_passwd_file_unref(userdb_pwf);
+ struct passwd_file_userdb_module *module =
+ (struct passwd_file_userdb_module *)_module;
+
+ module->pwf = db_passwd_file_parse(args, TRUE);
}
-struct userdb_module userdb_passwd_file = {
+static void passwd_file_deinit(struct userdb_module *_module)
+{
+ struct passwd_file_userdb_module *module =
+ (struct passwd_file_userdb_module *)_module;
+
+ db_passwd_file_unref(module->pwf);
+}
+
+struct userdb_module_interface userdb_passwd_file = {
"passwd-file",
- FALSE,
- NULL,
+ passwd_file_preinit,
passwd_file_init,
passwd_file_deinit,
Index: userdb-passwd.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/userdb-passwd.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- userdb-passwd.c 7 Aug 2005 11:41:19 -0000 1.17
+++ userdb-passwd.c 16 Oct 2005 14:34:39 -0000 1.18
@@ -39,9 +39,8 @@
callback(reply, auth_request);
}
-struct userdb_module userdb_passwd = {
+struct userdb_module_interface userdb_passwd = {
"passwd",
- FALSE,
NULL, NULL, NULL,
passwd_lookup
Index: userdb-sql.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/userdb-sql.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- userdb-sql.c 7 Aug 2005 11:41:19 -0000 1.11
+++ userdb-sql.c 16 Oct 2005 14:34:39 -0000 1.12
@@ -13,15 +13,17 @@
#include <stdlib.h>
#include <string.h>
+struct sql_userdb_module {
+ struct userdb_module module;
+
+ struct sql_connection *conn;
+};
+
struct userdb_sql_request {
struct auth_request *auth_request;
userdb_callback_t *callback;
};
-extern struct userdb_module userdb_sql;
-
-static struct sql_connection *userdb_sql_conn;
-
static struct auth_stream_reply *
sql_query_get_result(struct sql_result *result,
struct auth_request *auth_request)
@@ -99,11 +101,14 @@
static void userdb_sql_lookup(struct auth_request *auth_request,
userdb_callback_t *callback)
{
+ struct userdb_module *_module = auth_request->userdb->userdb;
+ struct sql_userdb_module *module =
+ (struct sql_userdb_module *)_module;
struct userdb_sql_request *sql_request;
string_t *query;
query = t_str_new(512);
- var_expand(query, userdb_sql_conn->set.user_query,
+ var_expand(query, module->conn->set.user_query,
auth_request_get_var_expand_table(auth_request,
str_escape));
@@ -113,34 +118,44 @@
auth_request_log_debug(auth_request, "sql", "%s", str_c(query));
- sql_query(userdb_sql_conn->db, str_c(query),
+ sql_query(module->conn->db, str_c(query),
sql_query_callback, sql_request);
}
-static void userdb_sql_preinit(const char *args)
+static struct userdb_module *
+userdb_sql_preinit(struct auth_userdb *auth_userdb, const char *args)
{
- userdb_sql_conn = db_sql_init(args);
+ struct sql_userdb_module *module;
+
+ module = p_new(auth_userdb->auth->pool, struct sql_userdb_module, 1);
+ module->conn = db_sql_init(args);
+ return &module->module;
}
-static void userdb_sql_init(const char *args __attr_unused__)
+static void userdb_sql_init(struct userdb_module *_module,
+ const char *args __attr_unused__)
{
+ struct sql_userdb_module *module =
+ (struct sql_userdb_module *)_module;
enum sql_db_flags flags;
- flags = sql_get_flags(userdb_sql_conn->db);
- userdb_sql.blocking = (flags & SQL_DB_FLAG_BLOCKING) != 0;
+ flags = sql_get_flags(module->conn->db);
+ _module->blocking = (flags & SQL_DB_FLAG_BLOCKING) != 0;
- if (!userdb_sql.blocking || worker)
- sql_connect(userdb_sql_conn->db);
+ if (!_module->blocking || worker)
+ sql_connect(module->conn->db);
}
-static void userdb_sql_deinit(void)
+static void userdb_sql_deinit(struct userdb_module *_module)
{
- db_sql_unref(userdb_sql_conn);
+ struct sql_userdb_module *module =
+ (struct sql_userdb_module *)_module;
+
+ db_sql_unref(module->conn);
}
-struct userdb_module userdb_sql = {
+struct userdb_module_interface userdb_sql = {
"sql",
- FALSE,
userdb_sql_preinit,
userdb_sql_init,
Index: userdb-static.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/userdb-static.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- userdb-static.c 5 Oct 2005 19:24:34 -0000 1.16
+++ userdb-static.c 16 Oct 2005 14:34:39 -0000 1.17
@@ -11,12 +11,18 @@
#include <stdlib.h>
-static pool_t static_pool;
-static array_t ARRAY_DEFINE(static_template, const char *);
+struct static_userdb_module {
+ struct userdb_module module;
+
+ array_t ARRAY_DEFINE(template, const char *);
+};
static void static_lookup(struct auth_request *auth_request,
userdb_callback_t *callback)
{
+ struct userdb_module *_module = auth_request->userdb->userdb;
+ struct static_userdb_module *module =
+ (struct static_userdb_module *)_module;
const struct var_expand_table *table;
struct auth_stream_reply *reply;
string_t *str;
@@ -30,7 +36,7 @@
reply = auth_stream_reply_init(auth_request);
auth_stream_reply_add(reply, NULL, auth_request->user);
- args = array_get(&static_template, &count);
+ args = array_get(&module->template, &count);
i_assert((count % 2) == 0);
for (i = 0; i < count; i += 2) {
if (args[i+1] == NULL)
@@ -47,20 +53,25 @@
t_pop();
}
-static void static_init(const char *args)
+static struct userdb_module *
+static_preinit(struct auth_userdb *auth_userdb, const char *args)
{
+ struct static_userdb_module *module;
const char *const *tmp, *key, *value;
uid_t uid;
gid_t gid;
- static_pool = pool_alloconly_create("static userdb", 256);
+ module = p_new(auth_userdb->auth->pool, struct static_userdb_module, 1);
+
uid = (uid_t)-1;
gid = (gid_t)-1;
- ARRAY_CREATE(&static_template, static_pool, const char *, 16);
+ tmp = t_strsplit_spaces(args, " ");
+ ARRAY_CREATE(&module->template, auth_userdb->auth->pool,
+ const char *, strarray_length(tmp));
t_push();
- for (tmp = t_strsplit_spaces(args, " "); *tmp != NULL; tmp++) {
+ for (; *tmp != NULL; tmp++) {
value = strchr(*tmp, '=');
if (value == NULL)
key = *tmp;
@@ -84,11 +95,11 @@
}
value = dec2str(gid);
}
- key = p_strdup(static_pool, key);
- value = p_strdup(static_pool, value);
+ key = p_strdup(auth_userdb->auth->pool, key);
+ value = p_strdup(auth_userdb->auth->pool, value);
- array_append(&static_template, &key, 1);
- array_append(&static_template, &value, 1);
+ array_append(&module->template, &key, 1);
+ array_append(&module->template, &value, 1);
}
t_pop();
@@ -96,20 +107,15 @@
i_fatal("static userdb: uid missing");
if (gid == (gid_t)-1)
i_fatal("static userdb: gid missing");
+ return &module->module;
}
-static void static_deinit(void)
-{
- pool_unref(static_pool);
-}
-
-struct userdb_module userdb_static = {
+struct userdb_module_interface userdb_static = {
"static",
- FALSE,
+ static_preinit,
+ NULL,
NULL,
- static_init,
- static_deinit,
static_lookup
};
Index: userdb-vpopmail.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/userdb-vpopmail.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- userdb-vpopmail.c 11 Sep 2005 13:03:48 -0000 1.18
+++ userdb-vpopmail.c 16 Oct 2005 14:34:39 -0000 1.19
@@ -93,9 +93,8 @@
callback(reply, auth_request);
}
-struct userdb_module userdb_vpopmail = {
+struct userdb_module_interface userdb_vpopmail = {
"vpopmail",
- FALSE,
NULL, NULL, NULL,
vpopmail_lookup
Index: userdb.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/userdb.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- userdb.c 5 Oct 2005 19:16:32 -0000 1.21
+++ userdb.c 16 Oct 2005 14:34:40 -0000 1.22
@@ -9,15 +9,15 @@
#include <pwd.h>
#include <grp.h>
-extern struct userdb_module userdb_passdb;
-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;
+extern struct userdb_module_interface userdb_passdb;
+extern struct userdb_module_interface userdb_static;
+extern struct userdb_module_interface userdb_passwd;
+extern struct userdb_module_interface userdb_passwd_file;
+extern struct userdb_module_interface userdb_vpopmail;
+extern struct userdb_module_interface userdb_ldap;
+extern struct userdb_module_interface userdb_sql;
-struct userdb_module *userdbs[] = {
+struct userdb_module_interface *userdb_interfaces[] = {
#ifdef USERDB_PASSWD
&userdb_passwd,
#endif
@@ -86,7 +86,7 @@
void userdb_preinit(struct auth *auth, const char *driver, const char *args)
{
- struct userdb_module **p;
+ struct userdb_module_interface **p, *iface;
struct auth_userdb *auth_userdb, **dest;
if (args == NULL) args = "";
@@ -99,9 +99,10 @@
auth_userdb->num++;
*dest = auth_userdb;
- for (p = userdbs; *p != NULL; p++) {
+ iface = NULL;
+ for (p = userdb_interfaces; *p != NULL; p++) {
if (strcmp((*p)->name, driver) == 0) {
- auth_userdb->userdb = *p;
+ iface = *p;
break;
}
}
@@ -110,23 +111,28 @@
if (auth_userdb->userdb == NULL)
auth_userdb->module = auth_module_open(driver);
if (auth_userdb->module != NULL) {
- auth_userdb->userdb =
- auth_module_sym(auth_userdb->module,
+ iface = auth_module_sym(auth_userdb->module,
t_strconcat("userdb_", driver, NULL));
}
#endif
- if (auth_userdb->userdb == NULL)
+ if (iface == NULL)
i_fatal("Unknown userdb driver '%s'", driver);
- if (auth_userdb->userdb->preinit != NULL)
- auth_userdb->userdb->preinit(auth_userdb->args);
+ if (iface->preinit == NULL) {
+ auth_userdb->userdb =
+ p_new(auth->pool, struct userdb_module, 1);
+ } else {
+ auth_userdb->userdb =
+ iface->preinit(auth_userdb, auth_userdb->args);
+ }
+ auth_userdb->userdb->iface = iface;
}
void userdb_init(struct auth_userdb *userdb)
{
- if (userdb->userdb->init != NULL)
- userdb->userdb->init(userdb->args);
+ if (userdb->userdb->iface->init != NULL)
+ userdb->userdb->iface->init(userdb->userdb, userdb->args);
if (userdb->userdb->blocking && !worker) {
/* blocking userdb - we need an auth server */
@@ -136,8 +142,8 @@
void userdb_deinit(struct auth_userdb *userdb)
{
- if (userdb->userdb->deinit != NULL)
- userdb->userdb->deinit();
+ if (userdb->userdb->iface->deinit != NULL)
+ userdb->userdb->iface->deinit(userdb->userdb);
#ifdef HAVE_MODULES
if (userdb->module != NULL)
auth_module_close(userdb->module);
Index: userdb.h
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/userdb.h,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- userdb.h 7 Aug 2005 11:41:19 -0000 1.23
+++ userdb.h 16 Oct 2005 14:34:40 -0000 1.24
@@ -9,15 +9,20 @@
struct auth_request *request);
struct userdb_module {
- const char *name;
-
/* If blocking is set to TRUE, use child processes to access
- this passdb. */
+ this userdb. */
int blocking;
- void (*preinit)(const char *args);
- void (*init)(const char *args);
- void (*deinit)(void);
+ const struct userdb_module_interface *iface;
+};
+
+struct userdb_module_interface {
+ const char *name;
+
+ struct userdb_module *
+ (*preinit)(struct auth_userdb *auth_userdb, const char *args);
+ void (*init)(struct userdb_module *module, const char *args);
+ void (*deinit)(struct userdb_module *module);
void (*lookup)(struct auth_request *auth_request,
userdb_callback_t *callback);
@@ -27,8 +32,8 @@
gid_t userdb_parse_gid(struct auth_request *request, const char *str);
void userdb_preinit(struct auth *auth, const char *driver, const char *args);
-void userdb_init(struct auth_userdb *passdb);
-void userdb_deinit(struct auth_userdb *passdb);
+void userdb_init(struct auth_userdb *userdb);
+void userdb_deinit(struct auth_userdb *userdb);
#include "auth-request.h"
- Previous message: [dovecot-cvs]
dovecot/src/auth auth-cache.c, 1.13, 1.14 auth-cache.h,
1.2, 1.3 auth-request.c, 1.33, 1.34 auth-worker-client.c, 1.15,
1.16 auth.c, 1.18, 1.19 db-ldap.c, 1.31, 1.32 db-passwd-file.c,
1.15, 1.16 db-passwd-file.h, 1.6, 1.7 passdb-bsdauth.c, 1.12,
1.13 passdb-checkpassword.c, 1.10, 1.11 passdb-ldap.c, 1.33,
1.34 passdb-pam.c, 1.28, 1.29 passdb-passwd-file.c, 1.21,
1.22 passdb-passwd.c, 1.15, 1.16 passdb-shadow.c, 1.16,
1.17 passdb-sql.c, 1.21, 1.22 passdb-vpopmail.c, 1.22,
1.23 passdb.c, 1.37, 1.38 passdb.h, 1.28,
1.29 userdb-passwd-file.c, 1.16, 1.17
- Next message: [dovecot-cvs] dovecot-lda/src deliver.c,1.30,1.31
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the dovecot-cvs
mailing list