From 79a538293acb62e5ecf5b09574d6bd5d58b03eca Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Tue, 27 Nov 2012 22:37:43 +0100 Subject: [PATCH] SMPC: when aborting because of to many outbound job free the aborted message in the right way [tm] --- citadel/modules/smtp/serv_smtpqueue.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/citadel/modules/smtp/serv_smtpqueue.c b/citadel/modules/smtp/serv_smtpqueue.c index fb74ed2ad..c128fd490 100644 --- a/citadel/modules/smtp/serv_smtpqueue.c +++ b/citadel/modules/smtp/serv_smtpqueue.c @@ -829,7 +829,7 @@ void smtp_do_procmsg(long msgnum, void *userdata) { StrBuf *Msg =NULL; if (mynumsessions > max_sessions_for_outbound_smtp) { - SMTPC_syslog(LOG_DEBUG, + SMTPC_syslog(LOG_INFO, "skipping because of num jobs %d > %d max_sessions_for_outbound_smtp", mynumsessions, max_sessions_for_outbound_smtp); @@ -940,13 +940,23 @@ void smtp_do_procmsg(long msgnum, void *userdata) { (((MyQItem->ActiveDeliveries * 2) < max_sessions_for_outbound_smtp))) { /* abort delivery for another time. */ - SMTPC_syslog(LOG_DEBUG, + SMTPC_syslog(LOG_INFO, "SMTP Queue: skipping because of num jobs %d + %ld > %d max_sessions_for_outbound_smtp", mynumsessions, MyQItem->ActiveDeliveries, max_sessions_for_outbound_smtp); - FreeQueItem(&MyQItem); + It = GetNewHashPos(MyQItem->MailQEntries, 0); + pthread_mutex_lock(&ActiveQItemsLock); + { + if (GetHashPosFromKey(ActiveQItems, + LKEY(MyQItem->MessageID), + It)) + { + DeleteEntryFromHash(ActiveQItems, It); + } + } + pthread_mutex_unlock(&ActiveQItemsLock); return; } -- 2.30.2