Msg->HostLookup.DNSReplyFree(Msg->HostLookup.VParsedDNSReply);
FreeURL(&Msg->Relay);
FreeStrBuf(&Msg->msgtext);
+ FreeStrBuf(&Msg->MultiLineBuf);
FreeAsyncIOContents(&Msg->IO);
memset (Msg, 0, sizeof(SmtpOutMsg)); /* just to be shure... */
free(Msg);
Msg->MyQItem->QueMsgID = -1;
if (Msg->IDestructQueItem)
- smtpq_do_bounce(Msg->MyQItem, StatusMessage, Msg->msgtext, Msg->pCurrRelay);
+ smtpq_do_bounce(Msg->MyQItem, Msg->msgtext, Msg->pCurrRelay);
if (Msg->nRemain > 0)
{
eNextState FinalizeMessageSend(SmtpOutMsg *Msg)
{
/* hand over to DB Queue */
- return QueueDBOperation(&Msg->IO, FinalizeMessageSend_DB);
+ return EventQueueDBOperation(&Msg->IO, FinalizeMessageSend_DB);
}
eNextState FailOneAttempt(AsyncIO *IO)
if (StrLength(IO->IOBuf) < 4)
continue;
if (ChrPtr(IO->IOBuf)[3] == '-')
+ {
+ SmtpOutMsg *Msg;
+ Msg = (SmtpOutMsg *)IO->Data;
+ if (Msg->MultiLineBuf == NULL)
+ Msg->MultiLineBuf = NewStrBuf ();
+ else
+ StrBufAppendBufPlain(Msg->MultiLineBuf, HKEY("\n"), 0);
+ StrBufAppendBuf(Msg->MultiLineBuf, IO->IOBuf, 0);
Finished = eBufferNotEmpty;
+ }
else
return Finished;
break;