X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fsmtp%2Fserv_smtpqueue.c;h=8c5c7378eaf4cc2c82e25779d75d1c63da8ef7c4;hb=4f90a6309738d083fe8082dc2ceaa55f4db931c2;hp=0fa65bea2000901c0098d814f5fcabbc9f0cb481;hpb=376dd32e8b9c84dbd31993e62fa917b038583537;p=citadel.git diff --git a/citadel/modules/smtp/serv_smtpqueue.c b/citadel/modules/smtp/serv_smtpqueue.c index 0fa65bea2..8c5c7378e 100644 --- a/citadel/modules/smtp/serv_smtpqueue.c +++ b/citadel/modules/smtp/serv_smtpqueue.c @@ -246,7 +246,7 @@ int CheckQEntryIsBounce(MailQEntry *ThisItem) return 0; } -int CountActiveQueueEntries(OneQueItem *MyQItem) +int CountActiveQueueEntries(OneQueItem *MyQItem, int before) { HashPos *It; long len; @@ -258,15 +258,20 @@ int CountActiveQueueEntries(OneQueItem *MyQItem) It = GetNewHashPos(MyQItem->MailQEntries, 0); while (GetNextHashPos(MyQItem->MailQEntries, It, &len, &Key, &vQE)) { + int Active; MailQEntry *ThisItem = vQE; if (CheckQEntryActive(ThisItem)) { ActiveDeliveries++; - ThisItem->Active = 1; + Active = 1; } else - ThisItem->Active = 0; + Active = 0; + if (before) + ThisItem->Active = Active; + else + ThisItem->StillActive = Active; } DeleteHashPos(&It); return ActiveDeliveries; @@ -884,7 +889,7 @@ void smtp_do_procmsg(long msgnum, void *userdata) { DeleteHashPos(&It); MyQItem->NotYetShutdownDeliveries = - MyQItem->ActiveDeliveries = CountActiveQueueEntries(MyQItem); + MyQItem->ActiveDeliveries = CountActiveQueueEntries(MyQItem, 1); /* failsafe against overload: * will we exceed the limit set?