AsyncIO *IO = watcher->data;
syslog(LOG_DEBUG, "event: %s\n", __FUNCTION__);
become_session(IO->CitContext);
-
+ assert(IO->DNSFail);
switch (IO->DNSQuery->PostDNS(IO))
{
case eAbort:
- ShutDownCLient(IO);
+ IO->DNSFail(IO);
default:
break;
}
Terminate, /* shutting down... */
Timeout, /* Timeout handler; may also be connection timeout */
ConnFail, /* What to do when one connection failed? */
+ DNSFail, /* the dns lookup didn't work out. */
ShutdownAbort,/* we're going down. make your piece. */
NextDBOperation; /* Perform Database IO */
eNextState POP3_C_Shutdown(AsyncIO *IO);
eNextState POP3_C_Timeout(AsyncIO *IO);
eNextState POP3_C_ConnFail(AsyncIO *IO);
+eNextState POP3_C_DNSFail(AsyncIO *IO);
eNextState POP3_C_DispatchReadDone(AsyncIO *IO);
eNextState POP3_C_DispatchWriteDone(AsyncIO *IO);
eNextState POP3_C_Terminate(AsyncIO *IO);
StrBufPlain(IO->ErrMsg, CKEY(POP3C_ReadErrors[pMsg->State]));
return FailAggregationRun(IO);
}
+eNextState POP3_C_DNSFail(AsyncIO *IO)
+{
+ pop3aggr *pMsg = (pop3aggr *)IO->Data;
+
+ syslog(LOG_DEBUG, "POP3: %s\n", __FUNCTION__);
+ StrBufPlain(IO->ErrMsg, CKEY(POP3C_ReadErrors[pMsg->State]));
+ return FailAggregationRun(IO);
+}
eNextState POP3_C_Shutdown(AsyncIO *IO)
{
syslog(LOG_DEBUG, "POP3: %s\n", __FUNCTION__);
cpptr->IO.Terminate = POP3_C_Terminate;
cpptr->IO.LineReader = POP3_C_ReadServerStatus;
cpptr->IO.ConnFail = POP3_C_ConnFail;
+ cpptr->IO.DNSFail = POP3_C_DNSFail;
cpptr->IO.Timeout = POP3_C_Timeout;
cpptr->IO.ShutdownAbort = POP3_C_Shutdown;
eNextState SMTP_C_ConnFail(AsyncIO *IO);
eNextState SMTP_C_DispatchReadDone(AsyncIO *IO);
eNextState SMTP_C_DispatchWriteDone(AsyncIO *IO);
+eNextState SMTP_C_DNSFail(AsyncIO *IO);
eNextState SMTP_C_Terminate(AsyncIO *IO);
eReadState SMTP_C_ReadServerStatus(AsyncIO *IO);
SendMsg->IO.Terminate = SMTP_C_Terminate;
SendMsg->IO.LineReader = SMTP_C_ReadServerStatus;
SendMsg->IO.ConnFail = SMTP_C_ConnFail;
+ SendMsg->IO.DNSFail = SMTP_C_DNSFail;
SendMsg->IO.Timeout = SMTP_C_Timeout;
SendMsg->IO.ShutdownAbort = SMTP_C_Shutdown;
StrBufPlain(IO->ErrMsg, CKEY(ReadErrors[pMsg->State]));
return FailOneAttempt(IO);
}
+eNextState SMTP_C_DNSFail(AsyncIO *IO)
+{
+ SmtpOutMsg *pMsg = IO->Data;
+
+ syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
+ StrBufPlain(IO->ErrMsg, CKEY(ReadErrors[pMsg->State]));
+ return FailOneAttempt(IO);
+}
eNextState SMTP_C_Shutdown(AsyncIO *IO)
{
syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);