projects
/
citadel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
SMTP-Client: fix trigger when to send bounce messages
[citadel.git]
/
citadel
/
modules
/
smtp
/
serv_smtpqueue.c
diff --git
a/citadel/modules/smtp/serv_smtpqueue.c
b/citadel/modules/smtp/serv_smtpqueue.c
index 3c4c2cb3e5c7b53d121c676e8d36fd79835c934f..a9ad37518659a5ec3143d350e847f993bc3b1d17 100644
(file)
--- a/
citadel/modules/smtp/serv_smtpqueue.c
+++ b/
citadel/modules/smtp/serv_smtpqueue.c
@@
-246,7
+246,7
@@
int CheckQEntryIsBounce(MailQEntry *ThisItem)
return 0;
}
return 0;
}
-int CountActiveQueueEntries(OneQueItem *MyQItem)
+int CountActiveQueueEntries(OneQueItem *MyQItem
, int before
)
{
HashPos *It;
long len;
{
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))
{
It = GetNewHashPos(MyQItem->MailQEntries, 0);
while (GetNextHashPos(MyQItem->MailQEntries, It, &len, &Key, &vQE))
{
+ int Active;
MailQEntry *ThisItem = vQE;
if (CheckQEntryActive(ThisItem))
{
ActiveDeliveries++;
MailQEntry *ThisItem = vQE;
if (CheckQEntryActive(ThisItem))
{
ActiveDeliveries++;
-
ThisItem->
Active = 1;
+ Active = 1;
}
else
}
else
- ThisItem->Active = 0;
+ Active = 0;
+ if (before)
+ ThisItem->Active = Active;
+ else
+ ThisItem->StillActive = Active;
}
DeleteHashPos(&It);
return ActiveDeliveries;
}
DeleteHashPos(&It);
return ActiveDeliveries;
@@
-902,7
+907,7
@@
void smtp_do_procmsg(long msgnum, void *userdata) {
DeleteHashPos(&It);
MyQItem->NotYetShutdownDeliveries =
DeleteHashPos(&It);
MyQItem->NotYetShutdownDeliveries =
-
MyQItem->ActiveDeliveries = CountActiveQueueEntries(MyQItem
);
+
MyQItem->ActiveDeliveries = CountActiveQueueEntries(MyQItem, 1
);
/* failsafe against overload:
* will we exceed the limit set?
/* failsafe against overload:
* will we exceed the limit set?