X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fsmtp%2Fserv_smtpeventclient.c;h=09bf0ea2472030ea75871680b40d90f681d23865;hb=933901571bf3f9e41d77218ed044b9ea7a7198c2;hp=0395addabb90c6b180850dd541fd518601105070;hpb=035a1bee3715f9063afeaaa239b385532b479aee;p=citadel.git diff --git a/citadel/modules/smtp/serv_smtpeventclient.c b/citadel/modules/smtp/serv_smtpeventclient.c index 0395addab..09bf0ea24 100644 --- a/citadel/modules/smtp/serv_smtpeventclient.c +++ b/citadel/modules/smtp/serv_smtpeventclient.c @@ -222,7 +222,7 @@ void DeleteSmtpOutMsg(void *v) eNextState SMTP_C_DispatchReadDone(void *Data); eNextState SMTP_C_DispatchWriteDone(void *Data); - +eNextState SMTP_C_Terminate(void *Data); typedef eNextState (*SMTPReadHandler)(SmtpOutMsg *Msg); typedef eNextState (*SMTPSendHandler)(SmtpOutMsg *Msg); @@ -667,6 +667,7 @@ int connect_one_smtpsrv_xamine_result(void *Ctx) InitEventIO(&SendMsg->IO, SendMsg, SMTP_C_DispatchReadDone, SMTP_C_DispatchWriteDone, + SMTP_C_Terminate, SMTP_C_ReadServerStatus, 1); return 0; @@ -907,7 +908,7 @@ eNextState SMTPC_read_QUIT_reply(SmtpOutMsg *SendMsg) CtdlLogPrintf(CTDL_INFO, "SMTP client[%ld]: delivery to <%s> @ <%s> (%s) succeeded\n", SendMsg->n, SendMsg->user, SendMsg->node, SendMsg->name); - return eSendReply; + return eTerminateConnection; } eNextState SMTPC_read_dummy(SmtpOutMsg *SendMsg) @@ -1261,6 +1262,12 @@ SMTPSendHandler SendHandlers[eMaxSMTPC] = { SMTPC_send_QUIT }; +eNextState SMTP_C_Terminate(void *Data) +{ + SmtpOutMsg *pMsg = Data; + FinalizeMessageSend(pMsg); + +} eNextState SMTP_C_DispatchReadDone(void *Data) { SmtpOutMsg *pMsg = Data;