diff options
author | Eric S. Raymond <esr@thyrsus.com> | 1999-01-30 04:41:00 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 1999-01-30 04:41:00 +0000 |
commit | 61345121e51771328803c9ee8fbe15e4177a25df (patch) | |
tree | c3aa7d3626b63567096546435932c509d2dfec41 | |
parent | 46a0fc8557cf1c5b765c7c761d891aa6f021c159 (diff) | |
download | fetchmail-61345121e51771328803c9ee8fbe15e4177a25df.tar.gz fetchmail-61345121e51771328803c9ee8fbe15e4177a25df.tar.bz2 fetchmail-61345121e51771328803c9ee8fbe15e4177a25df.zip |
This version appears ready to ship.
svn path=/trunk/; revision=2355
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | driver.c | 17 | ||||
-rw-r--r-- | fetchmail-FAQ.html | 8 | ||||
-rw-r--r-- | fetchmail.c | 3 | ||||
-rw-r--r-- | fetchmail.man | 27 | ||||
-rwxr-xr-x | fetchmailconf | 19 | ||||
-rw-r--r-- | interface.c | 6 | ||||
-rw-r--r-- | pop3.c | 2 | ||||
-rw-r--r-- | sink.c | 4 | ||||
-rwxr-xr-x | specgen.sh | 2 |
10 files changed, 51 insertions, 41 deletions
@@ -9,8 +9,10 @@ fetchmail-4.7.6 (): * Henrik Storner's fix for mimedecode * ' now works as a string quote in. fetchmailrc syntax, just like ". +* All bounce messages now use FQDN return paths. +* Check for background nmode before generating oversized-message mail. Duh! -There are 255 people on fetchmail-friends and 331 on fetchmail-announce. +There are 262 people on fetchmail-friends and 343 on fetchmail-announce. fetchmail-4.7.5 (Sat Jan 9 17:01:13 EST 1999): * Issue proper logout after running fetchmail -c @@ -1226,10 +1226,10 @@ const char *canonical; /* server name */ if (retval) { if (err_ret && err_ret->text.length) { report(stderr, 0, _("krb5_sendauth: %s [server says '%*s'] "), - error_message(retval), - err_ret->text.length, - err_ret->text.data); - krb5_free_report(stderr, context, err_ret); + error_message(retval), + err_ret->text.length, + err_ret->text.data); + krb5_free_error(context, err_ret); } else report(stderr, 0, "krb5_sendauth: %s", error_message(retval)); return(PS_ERROR); @@ -1285,7 +1285,7 @@ static void send_size_warnings(struct query *ctl) int msg_to_send = FALSE; struct idlist *head=NULL, *current=NULL; int max_warning_poll_count; -#define OVERHD "Subject: Fetchmail oversized-messages warning.\r\n\r\nThe following oversized messages remain on the mail server:" +#define OVERHD "Subject: Fetchmail oversized-messages warning.\r\n\r\nThe following oversized messages remain on the mail server %s:" head = ctl->skipped; if (!head) @@ -1305,7 +1305,7 @@ static void send_size_warnings(struct query *ctl) */ if (open_warning_by_mail(ctl, (struct msgblk *)NULL)) return; - stuff_warning(ctl, OVERHD); + stuff_warning(ctl, OVERHD, ctl->server.pollname); if (run.poll_interval == 0) max_warning_poll_count = 0; @@ -1692,7 +1692,7 @@ const struct method *proto; /* protocol method table */ { if (new == -1 || ctl->fetchall) new = count; - ok = ((new > 0) ? PS_SUCCESS : PS_NOMAIL); + fetches = new; /* set error status ccorrectly */ goto no_error; } else if (count > 0) @@ -2046,7 +2046,8 @@ const struct method *proto; /* protocol method table */ } } - if (!check_only && ctl->skipped) + if (!check_only && ctl->skipped + && run.poll_interval > 0 && !nodetach) { clean_skipped_list(&ctl->skipped); send_size_warnings(ctl); diff --git a/fetchmail-FAQ.html b/fetchmail-FAQ.html index 3fd20524..c3c32863 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/01/01 18:49:09 $ +<td width="30%" align=right>$Date: 1999/01/30 04:40:57 $ </table> <HR> <H1>Frequently Asked Questions About Fetchmail</H1> @@ -197,7 +197,9 @@ So you'll probably save us both time if you upgrade and test with the latest version <em>before</em> sending in a bug report.<P> It is helpful if you include your .fetchmailrc file, but not necessary -unless your symptom seems to involve an error in configuration parsing.<p> +unless your symptom seems to involve an error in configuration +parsing. If you do send in your .fetchmailrc, mask the passwords +first! <p> If fetchmail seems to run and fetch mail, but the headers look mangled (that is, headers are missing or blank lines are inserted in the @@ -2244,7 +2246,7 @@ Re-ordering messages is a user-agent function, anyway.<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/01/01 18:49:09 $ +<td width="30%" align=right>$Date: 1999/01/30 04:40:57 $ </table> <P><ADDRESS>Eric S. Raymond <A HREF="mailto:esr@thyrsus.com"><esr@snark.thyrsus.com></A></ADDRESS> diff --git a/fetchmail.c b/fetchmail.c index 8954e45e..17d278f3 100644 --- a/fetchmail.c +++ b/fetchmail.c @@ -164,6 +164,9 @@ int main (int argc, char **argv) if ((parsestatus = parsecmdline(argc,argv, &cmd_run, &cmd_opts)) < 0) exit(PS_SYNTAX); + /* this hint to stdio should help messages come out in the right order */ + setvbuf(stdout, NULL, _IOLBF, MSGBUFSIZE); + if (versioninfo) { printf(_("This is fetchmail release %s"), VERSION); diff --git a/fetchmail.man b/fetchmail.man index a8d13eb7..76b5c6d5 100644 --- a/fetchmail.man +++ b/fetchmail.man @@ -284,16 +284,19 @@ be comma-separated. .B \-m, \--mda (Keyword: mda) You can force mail to be passed to an MDA directly (rather than -forwarded to port 25) with the -mda or -m option. If \fIfetchmail\fR -is running as root, it sets its userid to that of the target user -while delivering mail through an MDA. Some possible MDAs are -"/usr/sbin/sendmail -oem -f %F %T", "/usr/bin/procmail -d %T" -and "/usr/bin/deliver". Local delivery addresses -will be inserted into the MDA command wherever you place a %T; the -mail message's From address will be inserted where you place an %F. Do -\fInot\fR use an MDA invocation like -"sendmail -oem -t" that dispatches on the contents of To/Cc/Bcc, it -will create mail loops and bring the just wrath of many postmasters +forwarded to port 25) with the -mda or -m option. Be aware that this +disables some valuable resource-exhaustion checks and error handling +provided by SMTP listeners; it's not a good idea unless running an +SMTP listener is impossible. If \fIfetchmail\fR is running as root, +it sets its userid to that of the target user while delivering mail +through an MDA. Some possible MDAs are "/usr/sbin/sendmail -oem -f %F +%T", "/usr/bin/deliver" and "/usr/bin/procmail -d %T" (but the latter +is usually redundant as). it's what SMTP listeners usually forward +to). Local delivery addresses will be inserted into the MDA command +wherever you place a %T; the mail message's From address will be +inserted where you place an %F. Do \fInot\fR use an MDA invocation +like "sendmail -oem -t" that dispatches on the contents of To/Cc/Bcc, +it will create mail loops and bring the just wrath of many postmasters down upon your head. .TP .B \--lmtp @@ -712,14 +715,14 @@ This option is intended for logging status and error messages which indicate the status of the daemon and the results while fetching mail from the server(s). Error messages for command line options and parsing the \fI.fetchmailrc\fR -file are still written to stderr, or the specified log file if the +file are still written to stderr, or to the specified log file. The .B --nosyslog option turns off use of .IR syslog (3), assuming it's turned on in the .I .fetchmailrc -file. +file, or that the .B -L or .B --logfile diff --git a/fetchmailconf b/fetchmailconf index 64269ed0..30d91dab 100755 --- a/fetchmailconf +++ b/fetchmailconf @@ -84,7 +84,6 @@ class Server: ('active', 'Boolean'), ('interval', 'Int'), ('protocol', 'String'), - ('interval', 'Int'), ('port', 'Int'), ('uidl', 'Boolean'), ('auth', 'String'), @@ -390,8 +389,7 @@ def helpwin(helpdict): textwin = Message(helpwin, text=helpdict['text'], width=600) textwin.pack() Button(helpwin, text='Done', - command=lambda x=helpwin: Widget.destroy(x), - relief=SUNKEN, bd=2).pack() + command=lambda x=helpwin: Widget.destroy(x), bd=2).pack() def make_icon_window(base, image): try: @@ -696,7 +694,7 @@ class ConfigurationEdit(Frame, MyWidget): def destruct(self): for sitename in self.subwidgets.keys(): self.subwidgets[sitename].destruct() - self.quit() + self.master.destroy() def nosave(self): if ConfirmQuit(self, self.mode + " configuration editor"): @@ -1024,7 +1022,7 @@ class ServerEdit(Frame, MyWidget): # Note: this only handles case (1) near fetchmail.c:892 # We're assuming people smart enough to set up ssh tunneling # won't need autoprobing. - if self.server.via != None: + if self.server.via: realhost = self.server.via else: realhost = self.server.pollname @@ -1167,8 +1165,7 @@ Fetchmail doesn't know anything special about this server type. Label(confwin, text=title).pack() Message(confwin, text=confirm, width=600).pack() Button(confwin, text='Done', - command=lambda x=confwin: Widget.destroy(x), - relief=SUNKEN, bd=2).pack() + command=lambda x=confwin: Widget.destroy(x), bd=2).pack() # # User editing stuff @@ -1397,8 +1394,8 @@ return to the main panel. ConfigurationEdit(Fetchmailrc, self.outfile, Toplevel()).edit('expert') def leave(self): + self.master.destroy() self.parent.configuration_active = 0 - Widget.destroy(self.master) # Run a command an a scrolling text widget, displaying its output @@ -1492,7 +1489,7 @@ Or you can just select `Quit' to exit the launcher now. Configurator(self.outfile, Toplevel(), self) def test(self): - RunWindow("fetchmail -d0 -v", Toplevel(), self) + RunWindow("fetchmail -d0 -v --nosyslog", Toplevel(), self) def run(self): RunWindow("fetchmail -d0", Toplevel(), self) @@ -1636,9 +1633,9 @@ gUSiYASJpMEHhilJTEnhAlGoQqYAZQ1AiqEMZ0jDGtqQImhwwA13yMMevoQAGvGhEAWHGMOAAAA7 # Read the existing configuration tmpfile = "/tmp/fetchmailconf." + `os.getpid()` if rcfile: - cmd = "fetchmail -f " + rcfile + " --configdump >" + tmpfile + cmd = "fetchmail -f " + rcfile + " --configdump --nosyslog >" + tmpfile else: - cmd = "fetchmail --configdump >" + tmpfile + cmd = "fetchmail --configdump --nosyslog >" + tmpfile try: s = os.system(cmd) diff --git a/interface.c b/interface.c index 22c1a35b..ccccd505 100644 --- a/interface.c +++ b/interface.c @@ -168,7 +168,7 @@ void interface_parse(char *buf, struct hostdata *hp) /* find and isolate just the IP address */ if (!(cp1 = strchr(buf, '/'))) - (void) report(stderr, PS_SYNTAX, 0, _("missing IP interface address")); + (void) report(stderr, PS_SYNTAX, _("missing IP interface address")); *cp1++ = '\000'; /* find and isolate just the netmask */ @@ -180,9 +180,9 @@ void interface_parse(char *buf, struct hostdata *hp) /* convert IP address and netmask */ hp->interface_pair = (struct interface_pair_s *)xmalloc(sizeof(struct interface_pair_s)); if (!inet_aton(cp1, &hp->interface_pair->interface_address)) - (void) report(stderr, PS_SYNTAX, 0, _("invalid IP interface address")); + (void) report(stderr, PS_SYNTAX, _("invalid IP interface address")); if (!inet_aton(cp2, &hp->interface_pair->interface_mask)) - (void) report(stderr, PS_SYNTAX, 0, _("invalid IP interface mask")); + (void) report(stderr, PS_SYNTAX, _("invalid IP interface mask")); /* apply the mask now to the IP address (range) required */ hp->interface_pair->interface_address.s_addr &= hp->interface_pair->interface_mask.s_addr; @@ -567,7 +567,7 @@ static int pop3_fetch(int sock, struct query *ctl, int number, int *lenp) sprintf(sdps_envto,"To: <%s>",buf); } } while - (buf[0] !='.'); + (!(buf[0] == '.' && (buf[1] == '\r' || buf[1] == '\n' || buf[1] == '\0'))); } #endif /* SDPS_ENABLE */ @@ -975,7 +975,9 @@ int open_warning_by_mail(struct query *ctl, struct msgblk *msg) * option to ESMTP; the message length would be more trouble than * it's worth to compute. */ - struct msgblk reply = {NULL, NULL, "FETCHMAIL-DAEMON", 0}; + struct msgblk reply = {NULL, NULL, "FETCHMAIL-DAEMON@", 0}; + + strcat(reply.return_path, fetchmailhost); if (!MULTIDROP(ctl)) /* send to calling user */ { @@ -61,7 +61,7 @@ através do servidor local SMTP (normalmente sendmail). Fetchmail es una utilidad gratis, completa, robusta y bien documentada para la recepción y reeenvío de correo pensada para ser usada en co- nexiones TCP/IP por demanda (como SLIP y PPP). Recibe el correo de -servidores remotos y lo reenvía a el sistema de entrega local, siendo de +servidores remotos y lo reenvía al sistema de entrega local, siendo de ese modo posible leerlo con programas como mutt, elm, pine, (x)emacs/gnus o mailx. Contiene un configurador GUI interactivo pensado para usuarios. |