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);
SmtpOutMsg *Msg = IO->Data;
SetSMTPState(IO, eSTMPconnecting);
- EVS_syslog(LOG_DEBUG, "%s\n", __FUNCTION__);
+ EVS_syslog(LOG_DEBUG, "%s(%s)\n", __FUNCTION__, (Msg->IsRelay)? "Relay":"Remote");
IO->ConnectMe = Msg->pCurrRelay;
Msg->State = eConnectMX;
resolve_mx_records);
}
else { /* oh... via relay host */
+ Msg->IsRelay = 1;
if (Msg->pCurrRelay->IsIP) {
SetSMTPState(&Msg->IO, eSTMPconnecting);
QueueEventContext(&Msg->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;