diff options
-rw-r--r-- | Makefile.in | 2 | ||||
-rw-r--r-- | NEWS | 15 | ||||
-rw-r--r-- | configure.in | 15 | ||||
-rw-r--r-- | driver.c | 1 | ||||
-rw-r--r-- | fetchmail-FAQ.html | 21 | ||||
-rw-r--r-- | fetchmail.h | 1 | ||||
-rwxr-xr-x | fetchmailconf | 24 | ||||
-rw-r--r-- | rcfile_y.y | 12 | ||||
-rw-r--r-- | uid.c | 12 |
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@ @@ -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], [ @@ -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"><esr@snark.thyrsus.com></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 @@ -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. */ @@ -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 */ { |