From cd46961ec2a691ad01a60af6a40314ded4c27e88 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Fri, 1 Jan 1999 18:49:10 +0000 Subject: This version is good. svn path=/trunk/; revision=2309 --- NEWS | 8 ++++++++ design-notes.html | 12 ++++++------ driver.c | 54 +++++++++++++++++++++++++++--------------------------- fetchmail-FAQ.html | 22 +++++++++++----------- fetchmail.c | 2 +- fetchmail.h | 8 +++++++- fetchmailconf | 2 ++ report.c | 10 ++-------- 8 files changed, 64 insertions(+), 54 deletions(-) diff --git a/NEWS b/NEWS index 48266776..b6e3052e 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,13 @@ Release Notes: +fetchmail-4.7.4 (): +* Error message cleanup. +* HTML cleanup in design notes and FAQ, thanks to Byrial Jensen. +* Don't get message sizes when --check is on. +* Supply our own strerror() if system doesn't have one. + +There are 248 people on fetchmail-friends and 336 on fetchmail-announce. + fetchmail-4.7.3 (Thu Dec 31 11:54:01 EST 1998): * Added new FAQ item G11 and added material to R1. * Do a full antispam check on the EOM response in case the local MTA does diff --git a/design-notes.html b/design-notes.html index 0501f520..8a48ba6f 100644 --- a/design-notes.html +++ b/design-notes.html @@ -2,7 +2,7 @@ Design notes on fetchmail - + @@ -10,7 +10,7 @@
Back to Fetchmail Home Page To Site Map -$Date: 1998/12/30 07:49:33 $ +$Date: 1999/01/01 18:49:07 $

Design Notes On Fetchmail

@@ -22,7 +22,7 @@ beginning to end.

History

A direct ancestor of the fetchmail program was originally authored -(under the name popclient) by Carl Harris . I took +(under the name popclient) by Carl Harris <ceharris@mal.com>. I took over development in June 1996 and subsequently renamed the program `fetchmail' to reflect the addition of IMAP support. In early November 1996 Carl officially ended support for the last popclient @@ -188,7 +188,7 @@ Fortunately, I've only seldom seen a server that incurred significant wait time on an individual response. I judge the gain from this not worth the hideous complexity increase it would require in the code.

-

Multiple concurrent instances of fetchmail

+

Multiple concurrent instances of fetchmail

Fetchmail locking is on a per-invoking-user because finer-grained locks would be really hard to implement in a portable way. The @@ -247,7 +247,7 @@ careful to preserve.

nameserver handy. If not, the poll is skipped. If DNS crashes during a poll, the error return from the next nameserver lookup aborts message delivery and ends the poll. The daemon mode will then quietly spin until - DNS comes up again, at which point it will resume delivering mail.

+ DNS comes up again, at which point it will resume delivering mail. When I designed this support, I was terrified of doing anything that could @@ -530,7 +530,7 @@ all shaped the design in one way or another.

Back to Fetchmail Home Page To Site Map -$Date: 1998/12/30 07:49:33 $ +$Date: 1999/01/01 18:49:07 $

Eric S. Raymond <esr@snark.thyrsus.com>
diff --git a/driver.c b/driver.c index 4b649ced..b9849062 100644 --- a/driver.c +++ b/driver.c @@ -1651,33 +1651,6 @@ const struct method *proto; /* protocol method table */ if (ok != 0) goto cleanUp; - /* - * We need the size of each message before it's - * loaded in order to pass via the ESMTP SIZE - * option. If the protocol has a getsizes method, - * we presume this means it doesn't get reliable - * sizes from message fetch responses. - */ - if (count > 0 && proto->getsizes) - { - int i; - - xalloca(msgsizes, int *, sizeof(int) * count); - for (i = 0; i < count; i++) - msgsizes[i] = -1; - - ok = (proto->getsizes)(sock, count, msgsizes); - if (ok != 0) - goto cleanUp; - - if (bytes == -1) - { - bytes = 0; - for (i = 0; i < count; i++) - bytes += msgsizes[i]; - } - } - /* show user how many messages we downloaded */ if (idp->id) (void) sprintf(buf, _("%s at %s (folder %s)"), @@ -1755,6 +1728,33 @@ const struct method *proto; /* protocol method table */ */ force_retrieval = !peek_capable && (ctl->errcount > 0); + /* + * We need the size of each message before it's + * loaded in order to pass via the ESMTP SIZE + * option. If the protocol has a getsizes method, + * we presume this means it doesn't get reliable + * sizes from message fetch responses. + */ + if (proto->getsizes) + { + int i; + + xalloca(msgsizes, int *, sizeof(int) * count); + for (i = 0; i < count; i++) + msgsizes[i] = -1; + + ok = (proto->getsizes)(sock, count, msgsizes); + if (ok != 0) + goto cleanUp; + + if (bytes == -1) + { + bytes = 0; + for (i = 0; i < count; i++) + bytes += msgsizes[i]; + } + } + /* read, forward, and delete messages */ for (num = 1; num <= count; num++) { diff --git a/fetchmail-FAQ.html b/fetchmail-FAQ.html index e9c7e2a7..3fd20524 100644 --- a/fetchmail-FAQ.html +++ b/fetchmail-FAQ.html @@ -10,7 +10,7 @@
Back to Fetchmail Home Page To Site Map -$Date: 1998/12/30 18:15:59 $ +$Date: 1999/01/01 18:49:09 $

Frequently Asked Questions About Fetchmail

@@ -98,7 +98,7 @@ IP address?
D1. I think I've set up fetchmail correctly, but I'm not getting any mail.
D2. All my mail seems to disappear after a dropped connection.
-D3. Mail that was being fetched when I interrupted my fetchmail seems to have been vanished.
+D3. Mail that was being fetched when I interrupted my fetchmail seems to have been vanished.

Multidrop-mode problems:

@@ -107,9 +107,9 @@ IP address?
M3. I tried to run a mailing list using multidrop, and I have a mail loop!
M4. My multidrop fetchmail seems to be having DNS problems.
M5. I'm seeing long DNS delays before each message is processed.
-M6. How do I get multidrop mode to work with majordomo? +M6. How do I get multidrop mode to work with majordomo?
M7. Multidrop mode isn't parsing envelope addresses from -my Received headers as it should. +my Received headers as it should.

Mangled mail:

@@ -474,7 +474,7 @@ Only one fetchmail option interacts directly with your IP address, `interface'. This option can be used to set the gateway device and restrict the IP address range fetchmail will use. Such a restriction is sometimes useful for security reasons, especially on -multihomed sites. See C3.

+multihomed sites. See C3.

I recommend against trying to set up the interface option when initially developing your poll configuration -- it's never @@ -882,7 +882,7 @@ filter rules. The human-readable form of the database is at /etc/mail/deny. The database itself is at /etc/mail/deny.db.

-

The table itself uses email addresses, domain names, and network +The table itself uses email addresses, domain names, and network numbers as keys. For example,

 spammer@aol.com         REJECT
@@ -1309,7 +1309,7 @@ and set the makefile up to link it.  You can also specify a directory
 containing the Rconnect library.


-

S6. How can I use fetchmail with geocities POP3 servers?

+

S6. How can I use fetchmail with geocities POP3 servers?

Nathan Cutler reports that the the mail.geocities.com POP3 servers fail to include the first Received line of the message in the send to @@ -1615,7 +1615,7 @@ match what you sent, then fetchmail or something on the server is broken.


-

R3. Fetchmail dumps core when given an invalid rc file.

+

R3. Fetchmail dumps core when given an invalid rc file.

This is usually reported from AIX or Ultrix, but has even been known to happen on Linuxes without a recent version of flex @@ -1899,7 +1899,7 @@ says:

I use this scheme with 2 virtual domains and the default ISP user+domain and service about 30 mail accounts + majordomo on my -inside pop3 server with fetchmail and sendmail 8.83

+inside pop3 server with fetchmail and sendmail 8.83


@@ -1931,7 +1931,7 @@ When fetchmail parses a Received line that looks like
 Received: from send103.yahoomail.com (send103.yahoomail.com [205.180.60.92])
     by iserv.ttns.net (8.8.5/8.8.5) with SMTP id RAA10088
-    for ; Wed, 9 Sep 1998 17:01:59 -0700
+    for <ksturgeon@fbceg.org>; Wed, 9 Sep 1998 17:01:59 -0700
 
it checks to see if `iserv.ttns.net' is a DNS alias of your mailserver @@ -2244,7 +2244,7 @@ Re-ordering messages is a user-agent function, anyway.

Back to Fetchmail Home Page To Site Map -$Date: 1998/12/30 18:15:59 $ +$Date: 1999/01/01 18:49:09 $

Eric S. Raymond <esr@snark.thyrsus.com>
diff --git a/fetchmail.c b/fetchmail.c index 1bdccaa2..88e1a311 100644 --- a/fetchmail.c +++ b/fetchmail.c @@ -1227,7 +1227,7 @@ static int query_host(struct query *ctl) time_t now; time(&now); - error(0, -1, _("fetchmail: %s querying %s (protocol %s) at %s"), + error(0, -1, _("%s querying %s (protocol %s) at %s"), VERSION, ctl->server.pollname, showproto(ctl->server.protocol), ctime(&now)); } diff --git a/fetchmail.h b/fetchmail.h index b7a048b6..5e5884a1 100644 --- a/fetchmail.h +++ b/fetchmail.h @@ -490,7 +490,13 @@ void itimerthread(void*); find all of our lock files and stuff. */ #define getcwd _getcwd2 #define chdir _chdir2 -#endif +#endif /* _EMX_ */ + +# if HAVE_STRERROR +# ifndef strerror /* On some systems, strerror is a macro */ +char *strerror (); +# endif +# endif /* HAVE_STRERROR */ #define STRING_DISABLED (char *)-1 #define STRING_DUMMY "" diff --git a/fetchmailconf b/fetchmailconf index aef75a72..090256ea 100755 --- a/fetchmailconf +++ b/fetchmailconf @@ -690,6 +690,8 @@ class ConfigurationEdit(Frame, MyWidget): if fm: fm.write("# Configuration created %s by fetchmailconf\n" % time.ctime(time.time())) fm.write(`self.configuration`) + if self.outfile: + fm.close() if fm != sys.stdout: os.chmod(self.outfile, 0600) self.quit() diff --git a/report.c b/report.c index b684ae21..837aeb3f 100644 --- a/report.c +++ b/report.c @@ -90,13 +90,8 @@ unsigned int error_message_count; name of the executing program. */ extern char *program_name; -# if HAVE_STRERROR -# ifndef strerror /* On some systems, strerror is a macro */ -char *strerror (); -# endif -# else -static char * -private_strerror (errnum) +# if !HAVE_STRERROR && !defined(strerror) +char *strerror (errnum) int errnum; { extern char *sys_errlist[]; @@ -106,7 +101,6 @@ private_strerror (errnum) return sys_errlist[errnum]; return _("Unknown system error"); } -# define strerror private_strerror # endif /* HAVE_STRERROR */ #endif /* _LIBC */ -- cgit v1.2.3