aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS3
-rw-r--r--configure.in2
-rw-r--r--fetchmail-FAQ.html11
-rw-r--r--imap.c23
4 files changed, 33 insertions, 6 deletions
diff --git a/NEWS b/NEWS
index 67a2a01a..a4335e35 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,9 @@
(The `lines' figures total .c, .h, .l, and .y files under version control.)
* Minor fixes by HMH.
+* Properly guard some transaction reporting in the SSL code.
+* Updated German (de) po file. Added Turkish (tr) po file.
+* Expunge edge case fix by Sunil Shetye.
fetchmail-5.9.6 (Fri Dec 14 04:03:50 EST 2001), 21247 lines:
diff --git a/configure.in b/configure.in
index d63f2aaf..d819d1e8 100644
--- a/configure.in
+++ b/configure.in
@@ -68,7 +68,7 @@ then
fi
dnl i18n
-ALL_LINGUAS="cs es fr pl pt_BR gl da"
+ALL_LINGUAS="cs es fr pl pt_BR gl da tr"
AM_GNU_GETTEXT
dnl end i18n
diff --git a/fetchmail-FAQ.html b/fetchmail-FAQ.html
index 0af81125..3760fe77 100644
--- a/fetchmail-FAQ.html
+++ b/fetchmail-FAQ.html
@@ -10,7 +10,7 @@
<table width="100%" cellpadding=0><tr>
<td width="30%">Back to <a href="index.html">Fetchmail Home Page</a>
<td width="30%" align=center>To <a href="/~esr/sitemap.html">Site Map</a>
-<td width="30%" align=right>$Date: 2001/12/25 04:55:14 $
+<td width="30%" align=right>$Date: 2002/02/01 02:14:23 $
</table>
<HR>
<H1>Frequently Asked Questions About Fetchmail</H1>
@@ -1853,6 +1853,11 @@ this will suffice. If you have them installed in a non-default
location, you'll need to specify it as an argument to --with-ssl after
an equal sign.
+<p>Note that there is a known bug in the implementation of SSL_peek
+under OpenSSL versions 0.9.5 and older that fetchmail occasionally
+tripped over, causing hangs. It is recommended that you install 0.9.6
+or later.
+
<p>Fetchmail binaries built this way support <code>ssl</code>,
<code>sslkey</code>, and <code>sslcert</code> options that control
SSL encryption. You will need to have an SSL-enabled mailserver
@@ -1868,7 +1873,7 @@ probably means your OS doesn't have that device.<p>.
An interactive program could seed the random number generator from
keystroke timings or some other form of user input. Because fetchmail
-is primarily designed to run forever as a background daemon, that option
+is primarily designed to run forever as a background daemon, that
option is not available in this case.
<hr>
@@ -2988,7 +2993,7 @@ date from the last Received header.<p>
<table width="100%" cellpadding=0><tr>
<td width="30%">Back to <a href="index.html">Fetchmail Home Page</a>
<td width="30%" align=center>To <a href="/~esr/sitemap.html">Site Map</a>
-<td width="30%" align=right>$Date: 2001/12/25 04:55:14 $
+<td width="30%" align=right>$Date: 2002/02/01 02:14:23 $
</table>
<ADDRESS>Eric S. Raymond <A HREF="mailto:esr@thyrsus.com">&lt;esr@thyrsus.com&gt;</A></ADDRESS>
diff --git a/imap.c b/imap.c
index 9a22a37c..9043a9ad 100644
--- a/imap.c
+++ b/imap.c
@@ -29,8 +29,9 @@ extern char *strstr(); /* needed on sysV68 R3V7.1. */
#define IMAP4 0 /* IMAP4 rev 0, RFC1730 */
#define IMAP4rev1 1 /* IMAP4 rev 1, RFC2060 */
-static int count, unseen, deletions, imap_version, preauth;
-static int expunged, expunge_period, saved_timeout;
+static int count, unseen, deletions = 0;
+static int expunged, expunge_period, saved_timeout = 0;
+static int imap_version, preauth;
static flag do_idle;
static char capabilities[MSGBUFSIZE+1];
static unsigned int *unseen_messages;
@@ -519,6 +520,23 @@ static int imap_getrange(int sock,
/* no messages? then we may need to idle until we get some */
if (count == 0 && do_idle)
imap_idle(sock);
+
+ /*
+ * We should have an expunge here to
+ * a) avoid fetching deleted mails during 'fetchall'
+ * b) getting a wrong count of mails during 'no fetchall'
+ */
+ if (!check_only && !ctl->keep && count > 0)
+ {
+ ok = internal_expunge(sock);
+ if (ok)
+ {
+ report(stderr, GT_("expunge failed\n"));
+ return(ok);
+ }
+ if (outlevel >= O_DEBUG)
+ report(stdout, GT_("%d messages waiting after expunge\n"), count);
+ }
}
*countp = count;
@@ -576,6 +594,7 @@ static int imap_getrange(int sock,
*newp = unseen;
expunged = 0;
+ deletions = 0;
return(PS_SUCCESS);
}