diff options
author | Eric S. Raymond <esr@thyrsus.com> | 1996-11-08 08:40:11 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 1996-11-08 08:40:11 +0000 |
commit | 78be978edfd5a5346ab773f1e3eb2240d29688b4 (patch) | |
tree | cc64afc47af2f3af50b8cdc72cd46ef2d0b6d767 | |
parent | 40350ef54e836c2d263b9835a9f72ef6d972628d (diff) | |
download | fetchmail-78be978edfd5a5346ab773f1e3eb2240d29688b4.tar.gz fetchmail-78be978edfd5a5346ab773f1e3eb2240d29688b4.tar.bz2 fetchmail-78be978edfd5a5346ab773f1e3eb2240d29688b4.zip |
Part of the batchlimit diff got mislaid.
svn path=/trunk/; revision=506
-rw-r--r-- | driver.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -42,6 +42,8 @@ #define SMTP_PORT 25 /* standard SMTP service port */ +int batchlimit; /* how often to tear down the delivery connection */ + static const struct method *protocol; static jmp_buf restart; @@ -203,8 +205,18 @@ static FILE *smtp_open(ctl) /* try to open a socket to the appropriate SMTP server for this query */ struct query *ctl; { + static int batchcount; + ctl = ctl->leader; /* go to the SMTP leader for this query */ + /* maybe it's time to close the socket in order to force delivery */ + if (batchlimit && ctl->smtp_sockfp && batchcount++ == batchlimit) + { + fclose(ctl->smtp_sockfp); + ctl->smtp_sockfp = (FILE *)NULL; + batchcount = 0; + } + /* if no socket to this host is already set up, try to open one */ if (ctl->smtp_sockfp == (FILE *)NULL) { |