]> code.citadel.org Git - citadel.git/blobdiff - citadel/msgbase.c
Fix envelope-to header.
[citadel.git] / citadel / msgbase.c
index be2096d1d6b319f089d78b8fe5f536f1b6db8528..b29980a5d558441670d70e77a0ef15276bd16b2d 100644 (file)
@@ -1814,6 +1814,7 @@ void OutputRFC822MsgHeaders(
        int i, j, k;
        char *mptr = NULL;
        char *mpptr = NULL;
+       char *hptr;
 
        for (i = 0; i < 256; ++i) {
                if (TheMessage->cm_fields[i]) {
@@ -1839,7 +1840,11 @@ void OutputRFC822MsgHeaders(
                        else if (i == 'V') {
                                if ((flags & QP_EADDR) != 0) 
                                        mptr = qp_encode_email_addrs(mptr);
-                               cprintf("Envelope-To: %s%s", mptr, nl);
+                               hptr = mptr;
+                               while ((*hptr != '\0') && isspace(*hptr))
+                                       hptr ++;
+                               if (!IsEmptyStr(hptr))
+                                       cprintf("Envelope-To: %s%s", hptr, nl);
                        }
                        else if (i == 'U') {
                                cprintf("Subject: %s%s", mptr, nl);
@@ -3345,7 +3350,7 @@ StrBuf *CtdlReadMessageBodyBuf(char *terminator,  /* token signalling EOT */
        /* read in the lines of message text one by one */
        do {
                if (sock != NULL) {
-                       if ((CtdlSockGetLine(sock, LineBuf) < 0) ||
+                       if ((CtdlSockGetLine(sock, LineBuf, 5) < 0) ||
                            (*sock == -1))
                                finished = 1;
                }
@@ -3474,6 +3479,7 @@ struct CtdlMessage *CtdlMakeMessage(
        }
        StrBufRFC2047encode(&FakeEncAuthor, FakeAuthor);
        msg->cm_fields['A'] = SmashStrBuf(&FakeEncAuthor);
+       FreeStrBuf(&FakeAuthor);
 
        if (CC->room.QRflags & QR_MAILBOX) {            /* room */
                msg->cm_fields['O'] = strdup(&CC->room.QRname[11]);