]> code.citadel.org Git - citadel.git/blobdiff - webcit-ng/ctdlclient.c
Re-encode the auth cookie with the properly formatted user name. This makes the...
[citadel.git] / webcit-ng / ctdlclient.c
index def999ec2f75c2785fe76c5aeb587ef823274b25..a861e2af7ff2cd2445edb50e7cafa4d7f38b48e9 100644 (file)
@@ -204,13 +204,18 @@ int login_to_citadel(struct ctdlsession *c, char *auth, char *resultbuf) {
        ctdl_readline(c, buf, 1024);
 
        if (buf[0] == '2') {
-               strcpy(c->auth, auth);
                extract_token(c->whoami, &buf[4], 0, '|', sizeof c->whoami);
-               syslog(LOG_DEBUG, "Login succeeded: %s", buf);
+               syslog(LOG_DEBUG, "Logged in as %s", c->whoami);
+
+               // Re-encode the auth string so it contains the properly formatted username
+               char new_auth_string[1024];
+               snprintf(new_auth_string, sizeof(new_auth_string),  "%s:%s", c->whoami, supplied_password);
+               CtdlEncodeBase64(c->auth, new_auth_string, strlen(new_auth_string), 0);
+
                return(0);
        }
 
-       syslog(LOG_DEBUG, "Login failed: %s", buf);
+       syslog(LOG_DEBUG, "Login failed: %s", &buf[4]);
        return(1);              // login failed; resultbuf will explain why
 }