]> code.citadel.org Git - citadel.git/blobdiff - citadel/modules/smtp/serv_smtpqueue.c
SMTP: fix aggregation of fail stati for aide / bounce message.
[citadel.git] / citadel / modules / smtp / serv_smtpqueue.c
index c128fd49026fe728627dbe8d147b4fb4b3959bdb..52433b90f3fe6e7629d9b11673f1e55fc53e4421 100644 (file)
@@ -518,7 +518,7 @@ StrBuf *smtp_load_msg(OneQueItem *MyQItem, int n, char **Author, char **Address)
 void smtpq_do_bounce(OneQueItem *MyQItem, StrBuf *OMsgTxt, ParsedURL *Relay)
 {
        static int seq = 0;
-
+       
        struct CtdlMessage *bmsg = NULL;
        StrBuf *boundary;
        StrBuf *Msg = NULL;
@@ -569,7 +569,10 @@ void smtpq_do_bounce(OneQueItem *MyQItem, StrBuf *OMsgTxt, ParsedURL *Relay)
                        StrBufAppendBufPlain(Msg, HKEY(" "), 0);
                        StrBufAppendBuf(Msg, ThisItem->Recipient, 0);
                        StrBufAppendBufPlain(Msg, HKEY(": "), 0);
-                       StrBufAppendBuf(Msg, ThisItem->StatusMessage, 0);
+                       if (ThisItem->AllStatusMessages != NULL)
+                               StrBufAppendBuf(Msg, ThisItem->AllStatusMessages, 0);
+                       else
+                               StrBufAppendBuf(Msg, ThisItem->StatusMessage, 0);
                        StrBufAppendBufPlain(Msg, HKEY("\r\n"), 0);
                }
        }
@@ -1005,7 +1008,7 @@ void smtp_do_procmsg(long msgnum, void *userdata) {
                                                         n,
                                                         RelayUrls);
 
-                               if (KeepBuffers) HaveBuffers = 1;
+                               if (KeepBuffers) HaveBuffers++;
 
                                i++;
                        }
@@ -1047,7 +1050,7 @@ void smtp_do_procmsg(long msgnum, void *userdata) {
                                                         n,
                                                         RelayUrls);
 
-                               if (KeepBuffers) HaveBuffers = 1;
+                               if (KeepBuffers) HaveBuffers++;
 
                                i++;
                        }