CtdlEncodeBase64() - only add linebreaks if told to by the caller.
[citadel.git] / webcit-ng / ctdlclient.c
index def999ec2f75c2785fe76c5aeb587ef823274b25..15eeed19a65d45ef2d900905b3616dfb9a036939 100644 (file)
@@ -57,12 +57,12 @@ int ctdl_readline(struct ctdlsession *ctdl, char *buf, int maxbytes) {
                                --len;
                        }
                        buf[len] = 0;
-                       syslog(LOG_DEBUG, "\033[32m[ %s\033[0m", buf);
+                       // syslog(LOG_DEBUG, "\033[32m[ %s\033[0m", buf);
                        return (len);
                }
                ++len;
        }
-       syslog(LOG_DEBUG, "\033[32m[ %s\033[0m", buf);
+       // syslog(LOG_DEBUG, "\033[32m[ %s\033[0m", buf);
        return (len);
 }
 
@@ -77,7 +77,7 @@ StrBuf *ctdl_readtextmsg(struct ctdlsession *ctdl) {
                return NULL;
        }
 
-       while ((ctdl_readline(ctdl, buf, sizeof(buf)) >= 0) && (strcmp(buf, "000"))) {
+       while (ctdl_readline(ctdl, buf, sizeof(buf)), strcmp(buf, "000")) {
                StrBufAppendPrintf(sj, "%s\n", buf);
        }
 
@@ -101,7 +101,7 @@ void ctdl_printf(struct ctdlsession *ctdl, const char *format, ...) {
        StrBufVAppendPrintf(Buf, format, arg_ptr);
        va_end(arg_ptr);
 
-       syslog(LOG_DEBUG, "\033[32m] %s\033[0m", ChrPtr(Buf));
+       // syslog(LOG_DEBUG, "\033[32m] %s\033[0m", ChrPtr(Buf));
        ctdl_write(ctdl, (char *) ChrPtr(Buf), StrLength(Buf));
        ctdl_write(ctdl, "\n", 1);
        FreeStrBuf(&Buf);
@@ -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), BASE64_NO_LINEBREAKS);
+
                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
 }