From 4967f6bb9c5d7bb7ff3fd1cb28244a249bdea755 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Sat, 22 Nov 1997 07:26:03 +0000 Subject: Ready to ship, I think. svn path=/trunk/; revision=1538 --- NEWS | 20 +++++++++++++++--- driver.c | 10 ++++----- fetchmail-FAQ.html | 12 ++--------- fetchmail.man | 5 +++-- pop3.c | 60 ++++++++++++++++++++++-------------------------------- rcfile_l.l | 1 + 6 files changed, 52 insertions(+), 56 deletions(-) diff --git a/NEWS b/NEWS index e735ad9a..58c0a0d2 100644 --- a/NEWS +++ b/NEWS @@ -3,7 +3,14 @@ * Generate bounce messages when delivery is refused. See RFC1891, RFC1892. * Use the libmd functions for md5 under Free BSD? (Low priority.) * More log levels? -* Allow an explicit "append" option to specify what reqwrite appends? +* Allow an explicit "append" option to specify what reqwrite appends? (For + when user's pop3 host isn't the same as his SMTP host.) +* Add logic to check whether *all* entries have `no dns' in them and allow + fetchmail to proceed in that case even if dns is down. +* Periodically check for listener-up and croak gracefully if it's not. +* Rewrite maps "From: John Smith (Systems) " to + "From: John Smith@my.pop.server (Systems) ". Is this + just GIGO, or should we try to cope Other TO-DO items: @@ -18,8 +25,15 @@ fetchmail-4.3.3 () * Fixed expansion of MDA %-escapes (thanks Wez Furlong ). * Deal with the possibility that IMAP NOOP issued on rescan might not get an EXISTS response (thanks to Jonathan T. Agnew ). - -There are 272 people on fetchmail-friends and 73 on fetchmail-announce. +* contrib/runfetchmail copyright now meets Debian Free Software Guidelines. +* RPA code is changed to track a change I'm told CompuServe made on the weekend + of November 15. +* Set %p 3000 in the lexer source to fix the Solaris 2.4 build. +* Changed the summary status message emitted by a foreground run. The old + user@host produced odd results under some virtual-domain setups, so it's + "user at host" now. + +There are 281 people on fetchmail-friends and 83 on fetchmail-announce. fetchmail-4.3.2 (Wed Oct 22 20:30:14 EDT 1997) * More slow-UIDL patches from Wolfgang Wander. diff --git a/driver.c b/driver.c index f6fd799f..317e7594 100644 --- a/driver.c +++ b/driver.c @@ -1595,27 +1595,27 @@ const struct method *proto; /* protocol method table */ /* show user how many messages we downloaded */ if (idp->id) - (void) sprintf(buf, "%s@%s:%s", + (void) sprintf(buf, "%s at %s (folder %s)", ctl->remotename, ctl->server.truename, idp->id); else - (void) sprintf(buf, "%s@%s", ctl->remotename, ctl->server.truename); + (void) sprintf(buf, "%s at %s", ctl->remotename, ctl->server.truename); if (outlevel > O_SILENT) if (count == -1) /* only used for ETRN */ error(0, 0, "Polling %s", ctl->server.truename); else if (count != 0) { if (new != -1 && (count - new) > 0) - error(0, 0, "%d message%s (%d seen) at %s.", + error(0, 0, "%d message%s (%d seen) for %s.", count, count > 1 ? "s" : "", count-new, buf); else - error(0, 0, "%d message%s at %s.", + error(0, 0, "%d message%s for %s.", count, count > 1 ? "s" : "", buf); } else { /* these are pointless in normal daemon mode */ if (pass == 1 && (poll_interval == 0 || outlevel == O_VERBOSE)) - error(0, 0, "No mail at %s", buf); + error(0, 0, "No mail for %s", buf); } /* very important, this is where we leave the do loop */ diff --git a/fetchmail-FAQ.html b/fetchmail-FAQ.html index 76010ebd..c8583211 100644 --- a/fetchmail-FAQ.html +++ b/fetchmail-FAQ.html @@ -10,7 +10,7 @@
Back to Fetchmail Home Page To Site Map -$Date: 1997/11/18 18:25:52 $ +$Date: 1997/11/22 07:26:00 $

Frequently Asked Questions About Fetchmail

@@ -800,14 +800,6 @@ http://www.informatik.uni-kiel.de/%7Eca/email/check.html

This one is by Claus Aßman, who has documented more of sendmail then I can digest! -The actual setup I used though was by David Begley, who has put together -a WWW page describing how to quickly implement these rules yourself.

- - -http://www.nepean.uws.edu.au/users/david/pe/blockmail.html

- -David's pages could be moving shortly. I will post an update if it happens.

- Remember, when copying these rulesets off the web, that there are tabs embedded in them, that may not be preserved. You must reintroduce these tabs into the rules to make them work properly.

@@ -1633,7 +1625,7 @@ will look right.

Back to Fetchmail Home Page To Site Map -$Date: 1997/11/18 18:25:52 $ +$Date: 1997/11/22 07:26:00 $

Eric S. Raymond <esr@snark.thyrsus.com>
diff --git a/fetchmail.man b/fetchmail.man index e1c5cbe7..faceea15 100644 --- a/fetchmail.man +++ b/fetchmail.man @@ -130,7 +130,7 @@ mailserver. This option does not work with ETRN. Delete retrieved messages from the remote mailserver. This option forces retrieved mail to be deleted. It may be useful if you have specified a default of \fBkeep\fR in your -\fI.fetchmailrc\fR. This option is forced on with ETRN. +\&\fI.fetchmailrc\fR. This option is forced on with ETRN. .TP .B \-F, --flush POP3/IMAP only. Delete old (previously retrieved) messages from the mailserver @@ -956,7 +956,8 @@ which DNS tells it are aliases of the mailserver. See the discussion of `dns', `localdomains', and `aka' for details on how matching addresses are handled. If \fIfetchmail\fR cannot match any mailserver usernames or localdomain addresses, the default recipient is the -calling user. +calling user (as set by the USER or LOGNAME variable in the +environment; you could use this to redirect to an alias like postmaster). .PP The `dns' option (normally on) controls the way addresses from multidrop mailboxes are checked. On, it enables logic to check each diff --git a/pop3.c b/pop3.c index 0cdf3179..a8808836 100644 --- a/pop3.c +++ b/pop3.c @@ -104,44 +104,32 @@ int pop3_getauth(int sock, struct query *ctl, char *greeting) case P_POP3: ok = gen_transact(sock, "USER %s", ctl->remotename); - if (ok != 0) #ifdef RPA_ENABLE - /* if CompuServe rejected our userid, try RPA */ - if (strstr(greeting, "csi.com")) - { - /* AUTH command should return a list of available mechanisms */ - if (gen_transact(sock, "AUTH") == 0) - { - char buffer[10]; - flag has_rpa = FALSE; - flag authenticated = FALSE; - - while ((ok = gen_recv(sock, buffer, sizeof(buffer))) == 0) - { - - if (buffer[0] == '.') - break; - if (strncasecmp(buffer, "rpa", 3) == 0) - has_rpa = TRUE; - } - if(has_rpa) { - if (POP3_auth_rpa(ctl->remotename, - ctl->password, sock) == PS_SUCCESS) - { - authenticated = TRUE; - break; - } - } - if (authenticated) { - /* we could return(PS_SUCCESS) here */ - ok = PS_SUCCESS; - break; - } - } - } - else /* not a CompuServe host, fail in the ordinary way */ + /* + * CompuServe has changed its RPA behavior. Used to be they didn't + * accept USER, but I'm told this changed in mid-November. + */ + if (strstr(greeting, "csi.com")) + { + /* AUTH command should return a list of available mechanisms */ + if (gen_transact(sock, "AUTH") == 0) + { + char buffer[10]; + flag has_rpa = FALSE; + + while ((ok = gen_recv(sock, buffer, sizeof(buffer))) == 0) + { + if (buffer[0] == '.') + break; + if (strncasecmp(buffer, "rpa", 3) == 0) + has_rpa = TRUE; + } + if (has_rpa && !POP3_auth_rpa(ctl->remotename, + ctl->password, sock)) + return(PS_SUCCESS); + } + } #endif /* RPA_ENABLE */ - break; #if defined(HAVE_LIBOPIE) && defined(OPIE_ENABLE) /* see RFC1938: A One-Time Password System */ diff --git a/rcfile_l.l b/rcfile_l.l index 4a612f87..3184da1b 100644 --- a/rcfile_l.l +++ b/rcfile_l.l @@ -17,6 +17,7 @@ int prc_lineno = 1; /* this doesn't work with Linux lex, see the INSTALL file */ %o 6000 %a 4000 +%p 3000 %% -- cgit v1.2.3