From 88dcfe08b97bb51edd6c1b8a9d20aa5e84012565 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Wed, 25 Jul 2001 09:56:00 +0000 Subject: [PATCH] Almost ready to ship. svn path=/trunk/; revision=3422 --- NEWS | 10 ++++++++++ pop3.c | 18 ++++++++++++++---- sink.c | 9 +++++++-- 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/NEWS b/NEWS index 94e7ac21..a0fac8a7 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,16 @@ (The `lines' figures total .c, .h, .l, and .y files under version control.) +* Refuse mail that has no good addresses and can't be sent to postmaster. +* Restore behavior of discarding mail on 550 (Debian bug #105237). +* John Summerfield updated getfetchmail. +* Cleanup patches by HMH. +* Lock-file-name bug reported by Scott Johnson. +* Updated Danish translation by Byrial Jensen. +* Updated French translation by Thierry Vignaud. +* Man page bugs pointed out by Andrew Benham. +* POP3 end of session RSET on keep removed. + fetchmail-5.8.14 (Thu Jul 12 03:19:57 EDT 2001), 21058 lines: * Corrected Rob Braun's remote-build change, it broke the build with NLS. diff --git a/pop3.c b/pop3.c index 83abbaf3..f6e5ddef 100644 --- a/pop3.c +++ b/pop3.c @@ -711,13 +711,23 @@ static int pop3_logout(int sock, struct query *ctl) { int ok; +#ifdef __UNUSED__ /* - * Just in case the server marks messages deleted when seen. - * Yes, this has been reported, in the MercuryP/NLM server. - * It's even legal under RFC 1939 (section 8) as a site policy. + * We used to do this in case the server marks messages deleted when seen. + * (Yes, this has been reported, in the MercuryP/NLM server. + * It's even legal under RFC 1939 (section 8) as a site policy.) + * It interacted badly with UIDL, though. Thomas Zajic wrote: + * "Running 'fetchmail -F -v' and checking the logs, I found out + * that fetchmail did in fact flush my mailbox properly, but sent + * a RSET just before sending QUIT to log off. This caused the + * POP3 server to undo/forget about the previous DELEs, resetting + * my mailbox to its original (ie. unflushed) state. The + * ~/.fetchids file did get flushed though, so the next time + * fetchmail was run it saw all the old messages as new ones ..." */ - if (ctl->keep) + if (ctl->keep) gen_transact(sock, "RSET"); +#endif /* __UNUSED__ */ ok = gen_transact(sock, "QUIT"); if (!ok) diff --git a/sink.c b/sink.c index bbe07cb8..061c9a97 100644 --- a/sink.c +++ b/sink.c @@ -652,8 +652,10 @@ int open_sink(struct query *ctl, struct msgblk *msg, if (SMTP_from(ctl->smtp_socket, ap, options) != SM_OK) { + int err = handle_smtp_report(ctl, msg); + SMTP_rset(ctl->smtp_socket); /* stay on the safe side */ - return(handle_smtp_report(ctl, msg)); + return(err); } /* @@ -1035,12 +1037,15 @@ int close_sink(struct query *ctl, struct msgblk *msg, flag forward) /* write message terminator */ if (SMTP_eom(ctl->smtp_socket) != SM_OK) { - SMTP_rset(ctl->smtp_socket); /* stay on the safe side */ if (handle_smtp_report(ctl, msg) != PS_REFUSED) + { + SMTP_rset(ctl->smtp_socket); /* stay on the safe side */ return(FALSE); + } else { report(stderr, _("SMTP listener refused delivery\n")); + SMTP_rset(ctl->smtp_socket); /* stay on the safe side */ return(TRUE); } } -- 2.43.2