SMTP-Client: on termination we need to determine whether we're in DB-IO or Socket...
authorWilfried Goesgens <dothebart@citadel.org>
Mon, 23 Jul 2012 13:43:31 +0000 (15:43 +0200)
committerWilfried Goesgens <dothebart@citadel.org>
Mon, 23 Jul 2012 13:43:31 +0000 (15:43 +0200)
citadel/modules/smtp/serv_smtpeventclient.c

index 9e97dda97aed2e8660abb7b31cf1d46b3d0e83f1..548f0b69aff395de3264254f002559db457febed 100644 (file)
@@ -751,6 +751,28 @@ eNextState SMTP_C_Shutdown(AsyncIO *IO)
        EVS_syslog(LOG_DEBUG, "%s\n", __FUNCTION__);
        SmtpOutMsg *Msg = IO->Data;
 
+       switch (IO->NextState) {
+       case eSendDNSQuery:
+       case eReadDNSReply:
+
+               /* todo: abort c-ares */
+       case eConnect:
+       case eSendReply:
+       case eSendMore:
+       case eSendFile:
+       case eReadMessage:
+       case eReadMore:
+       case eReadPayload:
+       case eReadFile:
+               StopClientWatchers(IO, 1);
+               break;
+       case eDBQuery:
+
+               break;
+       case eTerminateConnection:
+       case eAbort:
+               break;
+       }
        Msg->MyQEntry->Status = 3;
        StrBufPlain(Msg->MyQEntry->StatusMessage,
                    HKEY("server shutdown during message submit."));