From d2c853636ec2d99c9f96da877ff520a3b86a18ba Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Sun, 30 Nov 2008 02:45:12 +0200 Subject: [PATCH] mail_user_get_home() looked up user's home directory from userdb even if was already known. --HG-- branch : HEAD --- src/lib-storage/mail-user.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/lib-storage/mail-user.c b/src/lib-storage/mail-user.c index 5f340cc7d8..f1ff009b7d 100644 --- a/src/lib-storage/mail-user.c +++ b/src/lib-storage/mail-user.c @@ -116,6 +116,11 @@ int mail_user_get_home(struct mail_user *user, const char **home_r) 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 mail_user *user, const char **pathp) { 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; } -- 2.47.3