dovecot-1.2: mail_user_get_home() looked up user's home director...

dovecot at dovecot.org dovecot at dovecot.org
Sun Nov 30 02:45:16 EET 2008


details:   http://hg.dovecot.org/dovecot-1.2/rev/3fe1fb4e4f11
changeset: 8501:3fe1fb4e4f11
user:      Timo Sirainen <tss at iki.fi>
date:      Sun Nov 30 02:45:12 2008 +0200
description:
mail_user_get_home() looked up user's home directory from userdb even if was already known.

diffstat:

1 file changed, 9 insertions(+), 6 deletions(-)
src/lib-storage/mail-user.c |   15 +++++++++------

diffs (36 lines):

diff -r 3efcdc45d111 -r 3fe1fb4e4f11 src/lib-storage/mail-user.c
--- a/src/lib-storage/mail-user.c	Sun Nov 30 02:09:16 2008 +0200
+++ b/src/lib-storage/mail-user.c	Sun Nov 30 02:45:12 2008 +0200
@@ -116,6 +116,11 @@ int mail_user_get_home(struct mail_user 
 	pool_t userdb_pool;
 	int ret;
 
+	if (user->home_looked_up) {
+		*home_r = user->_home;
+		return user->_home != NULL ? 1 : 0;
+	}
+
 	userdb_pool = pool_alloconly_create("userdb lookup", 512);
 	ret = auth_master_user_lookup(auth_master_conn, user->username,
 				      AUTH_SERVICE_INTERNAL,
@@ -137,16 +142,14 @@ int mail_user_try_home_expand(struct mai
 {
 	const char *home, *path = *pathp;
 
-	if (!user->home_looked_up) {
-		if (mail_user_get_home(user, &home) < 0)
-			return -1;
-	}
+	if (mail_user_get_home(user, &home) < 0)
+		return -1;
 
 	if (path[0] == '~' && (path[1] == '/' || path[1] == '\0')) {
-		if (user->_home == NULL)
+		if (home == NULL)
 			return -1;
 
-		*pathp = t_strconcat(user->_home, path + 1, NULL);
+		*pathp = t_strconcat(home, path + 1, NULL);
 	}
 	return 0;
 }


More information about the dovecot-cvs mailing list