[exim-dev] [Bug 1262] wait db is used for SMTP transports li…

Top Page
Delete this message
Reply to this message
Author: Git Commit
Date:  
To: exim-dev
Old-Topics: [exim-dev] [Bug 1262] New: wait db is used for SMTP transports limited to one message per connection
Subject: [exim-dev] [Bug 1262] wait db is used for SMTP transports limited to one message per connection
------- You are receiving this mail because: -------
You are on the CC list for the bug.

http://bugs.exim.org/show_bug.cgi?id=1262

Git Commit <git@???> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |git@???





--- Comment #2 from Git Commit <git@???> 2012-09-11 23:17:07 ---
Git commit:
http://git.exim.org/exim.git/commitdiff/ea7224901573939b2aa159db5517c4ab60e22539

commit ea7224901573939b2aa159db5517c4ab60e22539
Author:     Jeremy Harris <jgh146exb@???>
AuthorDate: Tue Sep 11 23:11:16 2012 +0100
Commit:     Jeremy Harris <jgh146exb@???>
CommitDate: Tue Sep 11 23:11:16 2012 +0100


    Avoid using a waiting db for single-message-only transports.  Performance
    bug 1262 and patch from Paul Fisher.  Testcase 0288 exercises.
---
 doc/doc-txt/ChangeLog     |    3 +++
 src/src/transports/smtp.c |    7 +++++--
 2 files changed, 8 insertions(+), 2 deletions(-)


diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index c528ada..f9eaaf7 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -68,6 +68,9 @@ JH/05 Permit multiple router/transport headers_add/remove
lines.

JH/06 Add dnsdb pseudo-lookup "a+" to do an "aaaa" + "a" combination.

+JH/07 Avoid using a waiting database for a single-message-only transport.
+      Performance patch from Paul Fisher.
+
 Exim version 4.80
 -----------------


diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c
index f7af921..36a053f 100644
--- a/src/src/transports/smtp.c
+++ b/src/src/transports/smtp.c
@@ -3114,9 +3114,12 @@ for (addr = addrlist; addr != NULL; addr = addr->next)
/* Update the database which keeps information about which messages are
waiting
for which hosts to become available. For some message-specific errors, the
update_waiting flag is turned off because we don't want follow-on deliveries
in
-those cases. */
+those cases. If this transport instance is explicitly limited to one message
+per connection, follow-on deliveries are not possible, and there's no need
+to create/update a waiting database. */

-if (update_waiting) transport_update_waiting(hostlist, tblock->name);
+if (update_waiting && tblock->connection_max_messages != 1)
+ transport_update_waiting(hostlist, tblock->name);

END_TRANSPORT:



--
Configure bugmail: http://bugs.exim.org/userprefs.cgi?tab=email