]> Pileus Git - ~andy/fetchmail/commitdiff
More fixes from Sunil.
authorEric S. Raymond <esr@thyrsus.com>
Wed, 10 Jul 2002 13:56:20 +0000 (13:56 -0000)
committerEric S. Raymond <esr@thyrsus.com>
Wed, 10 Jul 2002 13:56:20 +0000 (13:56 -0000)
svn path=/trunk/; revision=3660

NEWS
driver.c
fetchmail-FAQ.html
fetchmail.man
pop3.c

diff --git a/NEWS b/NEWS
index 7f58dd8972e2835fdee26b35874772193874e667..3c6fdafe989fd693f121be44b3c5887070ee834e 100644 (file)
--- 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.
index 79ad42133795b9055d052291b846e2b7c9463bd4..380a7c2045067c0046de7b2a7ad04567e63148bc 100644 (file)
--- 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);
index 4bd9c4712e34a3824b9e753aff0e1da43be84302..c21a4ffc1d8d7ee7c282fca23474a6901b13d8b6 100644 (file)
@@ -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>
 
@@ -2162,6 +2163,12 @@ include the -i switch.  Otherwise you will occasionally get mysterious delivery
 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>
 
@@ -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>
index 18196c283ea23ab4b3866d504b6f4c764ac1d1ac..eabc7d12b4400f6dc5b92c9b11dec2497acc07a4 100644 (file)
@@ -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 01770aa1fb56fbaca84cfed9b9eb80a8240d4961..75b523189cdda24b9229eab2864cdaa3d4f70096 100644 (file)
--- 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 */