dovecot-2.2: doveadm director move/map: Use director_username_ha...
dovecot at dovecot.org
dovecot at dovecot.org
Thu Mar 27 09:02:42 UTC 2014
details: http://hg.dovecot.org/dovecot-2.2/rev/b697a214e122
changeset: 17173:b697a214e122
user: Timo Sirainen <tss at iki.fi>
date: Thu Mar 27 10:02:08 2014 +0100
description:
doveadm director move/map: Use director_username_hash setting for calculating hashes.
diffstat:
src/doveadm/doveadm-director.c | 16 +++-------------
src/doveadm/doveadm-settings.c | 2 ++
src/doveadm/doveadm-settings.h | 1 +
3 files changed, 6 insertions(+), 13 deletions(-)
diffs (77 lines):
diff -r 57638bf8ee3e -r b697a214e122 src/doveadm/doveadm-director.c
--- a/src/doveadm/doveadm-director.c Wed Mar 26 16:17:34 2014 +0100
+++ b/src/doveadm/doveadm-director.c Thu Mar 27 10:02:08 2014 +0100
@@ -9,6 +9,7 @@
#include "write-full.h"
#include "master-service.h"
#include "auth-master.h"
+#include "mail-user-hash.h"
#include "doveadm.h"
#include "doveadm-print.h"
@@ -180,17 +181,6 @@
director_disconnect(ctx);
}
-static unsigned int director_username_hash(const char *username)
-{
- unsigned char md5[MD5_RESULTLEN];
- unsigned int i, hash = 0;
-
- md5_get_digest(username, strlen(username), md5);
- for (i = 0; i < sizeof(hash); i++)
- hash = (hash << CHAR_BIT) | md5[i];
- return hash;
-}
-
static void
user_list_add(const char *username, pool_t pool,
HASH_TABLE_TYPE(user_list) users)
@@ -200,7 +190,7 @@
user = p_new(pool, struct user_list, 1);
user->name = p_strdup(pool, username);
- user_hash = director_username_hash(username);
+ user_hash = mail_user_hash(username, doveadm_settings->director_username_hash);
old_user = hash_table_lookup(users, POINTER_CAST(user_hash));
if (old_user != NULL)
@@ -440,7 +430,7 @@
argv[optind+2] != NULL)
director_cmd_help(cmd_director_move);
- user_hash = director_username_hash(argv[optind++]);
+ user_hash = mail_user_hash(argv[optind++], doveadm_settings->director_username_hash);
host = argv[optind];
director_get_host(host, &ips, &ips_count);
diff -r 57638bf8ee3e -r b697a214e122 src/doveadm/doveadm-settings.c
--- a/src/doveadm/doveadm-settings.c Wed Mar 26 16:17:34 2014 +0100
+++ b/src/doveadm/doveadm-settings.c Thu Mar 27 10:02:08 2014 +0100
@@ -67,6 +67,7 @@
DEF(SET_STR, dsync_remote_cmd),
DEF(SET_STR, ssl_client_ca_dir),
DEF(SET_STR, ssl_client_ca_file),
+ DEF(SET_STR, director_username_hash),
{ SET_STRLIST, "plugin", offsetof(struct doveadm_settings, plugin_envs), NULL },
@@ -88,6 +89,7 @@
.dsync_remote_cmd = "ssh -l%{login} %{host} doveadm dsync-server -u%u -U",
.ssl_client_ca_dir = "",
.ssl_client_ca_file = "",
+ .director_username_hash = "%Lu",
.plugin_envs = ARRAY_INIT
};
diff -r 57638bf8ee3e -r b697a214e122 src/doveadm/doveadm-settings.h
--- a/src/doveadm/doveadm-settings.h Wed Mar 26 16:17:34 2014 +0100
+++ b/src/doveadm/doveadm-settings.h Thu Mar 27 10:02:08 2014 +0100
@@ -16,6 +16,7 @@
const char *dsync_remote_cmd;
const char *ssl_client_ca_dir;
const char *ssl_client_ca_file;
+ const char *director_username_hash;
ARRAY(const char *) plugin_envs;
};
More information about the dovecot-cvs
mailing list