X-Git-Url: https://code.citadel.org/?p=citadel.git;a=blobdiff_plain;f=citadel%2Fmodules%2Fsmtp%2Fserv_smtpqueue.c;fp=citadel%2Fmodules%2Fsmtp%2Fserv_smtpqueue.c;h=a9ad37518659a5ec3143d350e847f993bc3b1d17;hp=3c4c2cb3e5c7b53d121c676e8d36fd79835c934f;hb=ab5c8068bad6fe3134f11c4a930d75da3d26cbfe;hpb=573281fcad13fe840b7f0795ff36be5cfc5b420a diff --git a/citadel/modules/smtp/serv_smtpqueue.c b/citadel/modules/smtp/serv_smtpqueue.c index 3c4c2cb3e..a9ad37518 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; @@ -902,7 +907,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?