X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fsmtp%2Fserv_smtpeventclient.c;h=be573d73a33ca23bbd7766a5cb008133a1cbe856;hb=6cbacba202dd905143b199c5b4734968e172caaa;hp=209c964b2aff885ef03ee8cd0ba6a61f9b37b024;hpb=b564b4f31c59b75d3bdc7d7cf7a4a48218e345c9;p=citadel.git diff --git a/citadel/modules/smtp/serv_smtpeventclient.c b/citadel/modules/smtp/serv_smtpeventclient.c index 209c964b2..be573d73a 100644 --- a/citadel/modules/smtp/serv_smtpeventclient.c +++ b/citadel/modules/smtp/serv_smtpeventclient.c @@ -127,6 +127,7 @@ void DeleteSmtpOutMsg(void *v) 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); @@ -863,7 +864,16 @@ eReadState SMTP_C_ReadServerStatus(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;