aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS5
-rw-r--r--driver.c2
-rw-r--r--fetchmail-FAQ.html11
-rw-r--r--fetchmail.man2
-rw-r--r--pop3.c12
5 files changed, 26 insertions, 6 deletions
diff --git a/NEWS b/NEWS
index 7f58dd89..3c6fdafe 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,11 @@
(The `lines' figures total .c, .h, .l, and .y files under version control.)
+* Workaround for the CAPA error problem is documented in the FAQ.
+* Updated Polish and Catalan translations.
+* Sunil Shetye's patch to improve CAPA error handling.
+* Sunil Shetye's patch to improve handling of unreadable boxes in POP3.
+
fetchmail-5.9.13 (Sat Jun 22 17:53:00 EDT 2002), 21791 lines:
* Cygwin port fixes for socket.c.
diff --git a/driver.c b/driver.c
index 79ad4213..380a7c20 100644
--- a/driver.c
+++ b/driver.c
@@ -1423,7 +1423,7 @@ is restored."));
cleanUp:
/* we only get here on error */
- if (err != 0 && err != PS_SOCKET)
+ if (err != 0 && err != PS_SOCKET && err != PS_REPOLL)
{
stage = STAGE_LOGOUT;
(ctl->server.base_protocol->logout_cmd)(mailserver_socket, ctl);
diff --git a/fetchmail-FAQ.html b/fetchmail-FAQ.html
index 4bd9c471..c21a4ffc 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: 2002/06/21 09:06:59 $
+<td width="30%" align=right>$Date: 2002/07/10 13:56:19 $
</table>
<HR>
<H1>Frequently Asked Questions About Fetchmail</H1>
@@ -116,6 +116,7 @@ IP address?</a><br>
messages but before deleting them</a><br>
<a href="#R9">R9. Fetchmail is timing out during message fetches</a><br>
<a href="#R10">R10. Fetchmail is dying with SIGPIPE.</a><br>
+<a href="#R11">R11. My server is hanging up or emitting errors on CAPA.</a><br>
<h1>Hangs and lockups:</h1>
@@ -2163,6 +2164,12 @@ failures with a SIGPIPE as the sendmail instance dies. The problem is
messages with a single dot at start of a text line.</p>
<hr>
+<a name="R11">R11. My server is hanging up or emitting errors on CAPA.</a></h2>
+
+<p>Your POP3 server is broken. You can work around this with the
+declaration <tt>auth password</tt> in your .fetchmailrc.</p>
+
+<hr>
<h2><a name="H1">H1. Fetchmail hangs when used with pppd.</a></h2>
<p>Your problem may be with pppd's `demand' option. We have a report that
@@ -3073,7 +3080,7 @@ the received 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: 2002/06/21 09:06:59 $
+<td width="30%" align=right>$Date: 2002/07/10 13:56:19 $
</table>
<ADDRESS>Eric S. Raymond <A HREF="mailto:esr@thyrsus.com">&lt;esr@thyrsus.com&gt;</A></ADDRESS>
diff --git a/fetchmail.man b/fetchmail.man
index 18196c28..eabc7d12 100644
--- a/fetchmail.man
+++ b/fetchmail.man
@@ -1255,7 +1255,7 @@ port -P T{
Specify TCP/IP service port
T}
auth[enticate] \& T{
-Set authentication type (default `password')
+Set authentication type (default `any')
T}
timeout -t T{
Server inactivity timeout in seconds (default 300)
diff --git a/pop3.c b/pop3.c
index 01770aa1..75b52318 100644
--- a/pop3.c
+++ b/pop3.c
@@ -70,7 +70,9 @@ static int pop3_ok (int sock, char *argbuf)
}
else if (strncmp(buf,"-ERR", 4) == 0)
{
- if (stage > STAGE_GETAUTH)
+ if (stage == STAGE_FETCH)
+ ok = PS_TRANSIENT;
+ else if (stage > STAGE_GETAUTH)
ok = PS_PROTOCOL;
/*
* We're checking for "lock busy", "unable to lock",
@@ -229,7 +231,13 @@ static int pop3_getauth(int sock, struct query *ctl, char *greeting)
}
}
/* we are in STAGE_GETAUTH! */
- else if (ok == PS_AUTHFAIL)
+ else if (ok == PS_AUTHFAIL ||
+ /* Some servers directly close the socket. However, if we
+ * have already authenticated before, then a previous CAPA
+ * must have succeeded. In that case, treat this as a
+ * genuine socket error and do not change the auth method.
+ */
+ (ok == PS_SOCKET && !ctl->wehaveauthed))
{
ctl->server.authenticate = A_PASSWORD;
/* repoll immediately */