* fixed tbirds managesieve login troubles.
authorWilfried Göesgens <willi@citadel.org>
Sat, 12 Jan 2008 22:56:39 +0000 (22:56 +0000)
committerWilfried Göesgens <willi@citadel.org>
Sat, 12 Jan 2008 22:56:39 +0000 (22:56 +0000)
citadel/modules/managesieve/serv_managesieve.c

index 6f4b67c0c68cbb3357c51da3e0c11290f5deb2db..614eff97a6d49dd08bb49bf9b6196e31f4da1520 100644 (file)
@@ -215,8 +215,11 @@ void cmd_mgsve_auth(int num_parms, char **parms, struct sdm_userdata *u)
                char auth[SIZ];
                int retval;
                char *message;
+               char *username;
+               char *password;
 
                message = NULL;
+               memset (auth, 0, SIZ);
                if (parms[2][0] == '{')
                        message = ReadString(GetSizeToken(parms[2]), parms[0]);
                
@@ -225,8 +228,11 @@ void cmd_mgsve_auth(int num_parms, char **parms, struct sdm_userdata *u)
                }
                else 
                        retval = CtdlDecodeBase64(auth, parms[2], SIZ);
-
-               if (login_ok == CtdlLoginExistingUser(NULL, auth))
+               username = auth;
+               if ((*username == '\0') && (*(username + 1) != '\0'))
+                       username ++;
+               
+               if (login_ok == CtdlLoginExistingUser(NULL, username))
                {
                        char *pass;
                        pass = &(auth[strlen(auth)+1]);