aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.in2
-rw-r--r--NEWS15
-rw-r--r--configure.in15
-rw-r--r--driver.c1
-rw-r--r--fetchmail-FAQ.html21
-rw-r--r--fetchmail.h1
-rwxr-xr-xfetchmailconf24
-rw-r--r--rcfile_y.y12
-rw-r--r--uid.c12
9 files changed, 93 insertions, 10 deletions
diff --git a/Makefile.in b/Makefile.in
index b06c052b..25ced5d6 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -4,7 +4,7 @@
# So just uncomment all the lines marked QNX.
PACKAGE = fetchmail
-VERSION = 5.1.4
+VERSION = 5.2.0
SUBDIRS = @INTLSUB@ @POSUB@
diff --git a/NEWS b/NEWS
index eec14690..0abdc0db 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,21 @@ a Certifying Authority we recognize?).
(The `lines' figures total .c, .h, .l, and .y files under version control.)
+fetchmail-5.2.0 (Tue Nov 30 14:24:25 EST 1999), 18302 lines:
+* fetchmailconf now complains and exits gracefully when not run under X.
+* configure.in port patch for OpenBSD from Federico G. Schwindt.
+* configure.in port patch fror Heimdal from Leif Johansson <leifj@it.su.se>
+* configure.in fix for OpenSSL configuration problems.
+* Teach fetchmail about the buggy FTGate server.
+* cs.po update from Jiri Pavlovsky.
+* Edmund Grimley's patch to uid.c to fix the `uidl keep expunge 1' case.
+* Abort startup if the configuration directory is nonexistent; this
+ probably means an NFS mount of user's home directory failed.
+* Added warnings and FAQ items about the MailMax server, which doesn't
+ download attachments.
+
+There are 278 people on fetchmail-friends and 472 on fetchmail-announce.
+
fetchmail-5.1.4 (Sun Nov 7 17:40:21 EST 1999), 18302 lines:
* Mike Pearce's patch to fix a compile-time error recently introduced into
the socket code when HAVE_INET_ATON is off.
diff --git a/configure.in b/configure.in
index a32e67ce..3e438586 100644
--- a/configure.in
+++ b/configure.in
@@ -358,8 +358,8 @@ fi
### use option --with-ssl to compile in the SSL support
AC_ARG_WITH(ssl,
- [ --with-ssl[=DIR] enable SSL support using libraries in DIR]
- [with_ssl=$enableval],
+ [ --with-ssl=[DIR] enable SSL support using libraries in DIR],
+ [with_ssl=$withval],
[with_ssl=no])
test "$with_netsec" = "yes" && AC_DEFINE(SSL_ENABLE)
@@ -401,6 +401,11 @@ then
### ssl.h found under openssl. Use openssl configuration preferentially
echo "Enabling OpenSSL support in $with_ssl"
CEFLAGS="$CEFLAGS -I$with_ssl/include -I$with_ssl/include/openssl"
+### OpenBSD comes with ssl headers
+ elif test -r /usr/include/ssl/ssl.h
+ then
+ echo "Enabling SSLeay support in $with_ssl"
+ CEFLAGS="$CEFLAGS -I/usr/include/ssl"
else
echo "Enabling SSLeay support in $with_ssl"
CEFLAGS="$CEFLAGS -I$with_ssl/include"
@@ -526,10 +531,9 @@ then
LDFLAGS="$LDFLAGS -L$with_gssapi/lib"
fi
- AC_CHECK_LIB(krb5, krb5_init_context,,
- AC_MSG_ERROR([could not find libkrb5 which is needed for GSSAPI support]))
- if test -f "$with_kerberos5/include/roken.h"
+ if test -f "$with_gssapi/include/roken.h"
then
+ LIBS="$LIBS -lkrb5 -lasn1 -ldes -lroken -ldb -ldl"
AC_CHECK_LIB(gssapi, gss_init_sec_context,LIBS="$LIBS -lgssapi",
AC_MSG_ERROR([could not find libgssapi which is needed for GSSAPI support]), )
AC_DEFINE(HEIMDAL)
@@ -546,7 +550,6 @@ then
else
AC_EGREP_HEADER(GSS_C_NT_HOSTBASED_SERVICE, gssapi/gssapi.h, AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE))
fi
- CPPFLAGS=$save_CPPFLAGS
fi])
AC_OUTPUT([Makefile intl/Makefile po/Makefile.in], [
diff --git a/driver.c b/driver.c
index b1cb6843..543bac78 100644
--- a/driver.c
+++ b/driver.c
@@ -2146,6 +2146,7 @@ const int maxfetch; /* maximum number of messages to fetch */
{
report(stdout, _("fetchlimit %d reached; %d messages left on server\n"),
maxfetch, count - fetches);
+ uid_expunge(ctl);
ok = PS_MAXFETCH;
goto cleanUp;
}
diff --git a/fetchmail-FAQ.html b/fetchmail-FAQ.html
index cb56c633..28a966a1 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: 1999/10/31 17:17:42 $
+<td width="30%" align=right>$Date: 1999/11/30 19:26:15 $
</table>
<HR>
<H1>Frequently Asked Questions About Fetchmail</H1>
@@ -81,6 +81,8 @@ IP address?</a><br>
<a href="#S8">S8. How can I use fetchmail with Hotmail?</a><br>
<a href="#S9">S9. How can I use fetchmail with MSN?</a><br>
<a href="#S10">S10. How can I use fetchmail with SpryNet?</a><br>
+<a href="#S11">S11. How can I use fetchmail with FTGate?</a><br>
+<a href="#S12">S12. How can I use fetchmail with MailMax?</a><br>
<h1>How to set up well-known security and authentication methods:</h1>
@@ -1450,6 +1452,21 @@ up invisibly stuck on your mail spool. Use the <code>fetchall</code>
flag to ensure that it's recovered on the next cycle.<p>
<hr>
+<h2><a name="S11">S11. How can I use fetchmail with FTGate?</a></h2>
+
+The FTGate V2 server (and possibly older versions as well) has a weird
+bug. It answers OK twice to a TOP request! Use the
+<code>fetchall</code> option to force use of RETR and work around this
+bug.<p>
+
+<hr>
+<h2><a name="S12">S12. How can I use fetchmail with MailMax?</a></h2>
+
+You can't. At least not if you want to be able to see attachments.
+MailMax has a bug; it reports the message length with attachments
+but doesn't download them on TOP or RETR. <p>
+
+<hr>
<h2><a name="S10">S10. How can I use fetchmail with Novell GroupWise?</a></h2>
The Novell GroupWise IMAP server would be better named GroupFoolish;
@@ -2481,7 +2498,7 @@ inactivity timeout.<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: 1999/10/31 17:17:42 $
+<td width="30%" align=right>$Date: 1999/11/30 19:26:15 $
</table>
<P><ADDRESS>Eric S. Raymond <A HREF="mailto:esr@thyrsus.com">&lt;esr@snark.thyrsus.com&gt;</A></ADDRESS>
diff --git a/fetchmail.h b/fetchmail.h
index 69e7b838..2a4f7af2 100644
--- a/fetchmail.h
+++ b/fetchmail.h
@@ -434,6 +434,7 @@ char *idpair_find(struct idlist **, const char *);
void append_str_list(struct idlist **, struct idlist **);
void expunge_uids(struct query *);
void update_str_lists(struct query *);
+void uid_expunge(struct query *);
void write_saved_lists(struct query *, const char *);
/* rcfile_y.y */
diff --git a/fetchmailconf b/fetchmailconf
index bc6117f2..6b618e38 100755
--- a/fetchmailconf
+++ b/fetchmailconf
@@ -1108,6 +1108,26 @@ you'll have to build it from sources yourself with the configure
switch --enable-POP2.
"""
+
+# The greeting line on the server known to be buggy is:
+# +OK POP3 server ready (running FTGate V2, 2, 1, 0 Jun 21 1999 09:55:01)
+#
+if string.find(greetline, "FTGate") > 0:
+ warnings = warnings + """
+This POP server has a weird bug; it says OK twice in response to TOP.
+Its response to RETR is normal, so use the `fetchall'.
+
+"""
+
+if string.find(greetline, "POP-Max") > 0:
+ warnings = warnings + """
+The Mail Max server screws up on mail with attachments. It reports the
+message size with attachments included, but doesn't downloasd them on a
+RETR or TOP. You should get rid of it -- and the brain-dead NT server
+it rode in on.
+
+"""
+
if string.find(greetline, "1.003") > 0 or string.find(greetline, "1.004") > 0:
warnings = warnings + """
This appears to be an old version of the UC Davis POP server. These are
@@ -1684,6 +1704,10 @@ def copy_instance(toclass, fromdict):
if __name__ == '__main__':
+ if not os.environ.has_key("DISPLAY"):
+ print "fetchmailconf must be run under X"
+ sys.exit(1)
+
fetchmail_gif = """
R0lGODdhPAAoAPcAAP///wgICBAQEISEhIyMjJSUlKWlpa2trbW1tcbGxs7Ozufn5+/v7//39yEY
GNa9tUoxKZyEe1o5KTEQAN7OxpyMhIRjUvfn3pxSKYQ5EO/Wxv/WvWtSQrVzSmtCKWspAMatnP/e
diff --git a/rcfile_y.y b/rcfile_y.y
index 8091b7c7..4cb0b5a4 100644
--- a/rcfile_y.y
+++ b/rcfile_y.y
@@ -428,7 +428,17 @@ int prc_parse_file (const char *pathname, const flag securecheck)
if ( (prc_errflag = prc_filecheck(pathname, securecheck)) != 0 )
return(prc_errflag);
- if (errno == ENOENT)
+ /*
+ * Croak if the configuration directory does not exist.
+ * This probably means an NFS mount failed and we can't
+ * see a configuration file that ought to be there.
+ * Question: is this a portable check? It's not clear
+ * that all implementations of lstat() will return ENOTDIR
+ * rather than plain ENOENT in this case...
+ */
+ if (errno == ENOTDIR)
+ return(PS_IOERR);
+ else if (errno == ENOENT)
return(PS_SUCCESS);
/* Open the configuration file and feed it to the lexer. */
diff --git a/uid.c b/uid.c
index 934eae82..c7f007e4 100644
--- a/uid.c
+++ b/uid.c
@@ -389,6 +389,18 @@ void update_str_lists(struct query *ctl)
}
}
+void uid_expunge(struct query *ctl)
+/* transfer seen UIDs from newsaved to oldsaved
+ to simulate writing anad rereading .fetchids */
+{
+ struct idlist *i;
+
+ for (i = ctl->newsaved; i; i = i->next)
+ if (i->val.status.mark == UID_SEEN &&
+ !str_in_list(&ctl->oldsaved, i->id, FALSE))
+ save_str(&ctl->oldsaved, i->id, UID_SEEN);
+}
+
void write_saved_lists(struct query *hostlist, const char *idfile)
/* perform end-of-run write of seen-messages list */
{