]> code.citadel.org Git - citadel.git/blobdiff - citadel/modules/smtp/smtp_clienthandlers.c
SMTP: fix authentication.
[citadel.git] / citadel / modules / smtp / smtp_clienthandlers.c
index c974e822bf7d63b2fc8d019d2964de4012fcfef6..b3de3ae1ee0acac10af62d859bc44d98f17ca795 100644 (file)
@@ -92,6 +92,7 @@
                Msg->MyQEntry->Status = WHICH_ERR;                     \
                StrBufAppendBufPlain(Msg->MyQEntry->StatusMessage,     \
                                     HKEY(ERRSTR), 0);                 \
+               StrBufTrim(Msg->MyQEntry->StatusMessage);              \
                return eAbort; }                                       \
        while (0)
 
                StrBufPlain(Msg->MyQEntry->StatusMessage,      \
                            ChrPtr(Msg->IO.IOBuf) + 4,         \
                            StrLength(Msg->IO.IOBuf) - 4);     \
+               StrBufTrim(Msg->MyQEntry->StatusMessage);      \
                return eAbort; }                               \
        while (0)
 
@@ -120,6 +122,7 @@ eNextState SMTPC_read_greeting(SmtpOutMsg *Msg)
        /* Process the SMTP greeting from the server */
        AsyncIO *IO = &Msg->IO;
        SMTP_DBG_READ();
+       SetSMTPState(IO, eSTMPsmtp);
 
        if (!SMTP_IS_STATE('2')) {
                if (SMTP_IS_STATE('4'))
@@ -302,11 +305,13 @@ eNextState SMTPC_read_DATAcmd_reply(SmtpOutMsg *Msg)
        SMTP_DBG_READ();
 
        if (!SMTP_IS_STATE('3')) {
+               SetSMTPState(IO, eSTMPfailOne);
                if (SMTP_IS_STATE('4'))
                        SMTP_VERROR(3);
                else
                        SMTP_VERROR(5);
        }
+       SetSMTPState(IO, eSTMPsmtpdata);
        return eSendReply;
 }
 
@@ -350,10 +355,12 @@ eNextState SMTPC_read_data_body_reply(SmtpOutMsg *Msg)
                        SMTP_VERROR(5);
        }
 
+       SetSMTPState(IO, eSTMPsmtpdone);
        /* We did it! */
        StrBufPlain(Msg->MyQEntry->StatusMessage,
                    &ChrPtr(Msg->IO.RecvBuf.Buf)[4],
                    StrLength(Msg->IO.RecvBuf.Buf) - 4);
+       StrBufTrim(Msg->MyQEntry->StatusMessage);
        Msg->MyQEntry->Status = 2;
        return eSendReply;
 }