Msg->IDestructQueItem = DecreaseQReference(Msg->MyQItem);
- Msg->nRemain = CountActiveQueueEntries(Msg->MyQItem);
+ Msg->nRemain = CountActiveQueueEntries(Msg->MyQItem, 0);
if (Msg->MyQEntry->Active &&
+ !Msg->MyQEntry->StillActive &&
CheckQEntryIsBounce(Msg->MyQEntry))
{
/* are we casue for a bounce mail? */
* - connection timeout
* - dns lookup failed
*/
- StopClientWatchers(IO);
+ StopClientWatchers(IO, 1);
if (Msg->pCurrRelay != NULL)
Msg->pCurrRelay = Msg->pCurrRelay->Next;
+ if ((Msg->pCurrRelay != NULL) &&
+ !Msg->pCurrRelay->IsRelay &&
+ Msg->MyQItem->HaveRelay)
+ {
+ EVS_syslog(LOG_DEBUG, "%s Aborting; last relay failed.\n", __FUNCTION__);
+ return eAbort;
+ }
if (Msg->pCurrRelay == NULL) {
EVS_syslog(LOG_DEBUG, "%s Aborting\n", __FUNCTION__);