aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>1999-01-30 04:41:00 +0000
committerEric S. Raymond <esr@thyrsus.com>1999-01-30 04:41:00 +0000
commit61345121e51771328803c9ee8fbe15e4177a25df (patch)
treec3aa7d3626b63567096546435932c509d2dfec41
parent46a0fc8557cf1c5b765c7c761d891aa6f021c159 (diff)
downloadfetchmail-61345121e51771328803c9ee8fbe15e4177a25df.tar.gz
fetchmail-61345121e51771328803c9ee8fbe15e4177a25df.tar.bz2
fetchmail-61345121e51771328803c9ee8fbe15e4177a25df.zip
This version appears ready to ship.
svn path=/trunk/; revision=2355
-rw-r--r--NEWS4
-rw-r--r--driver.c17
-rw-r--r--fetchmail-FAQ.html8
-rw-r--r--fetchmail.c3
-rw-r--r--fetchmail.man27
-rwxr-xr-xfetchmailconf19
-rw-r--r--interface.c6
-rw-r--r--pop3.c2
-rw-r--r--sink.c4
-rwxr-xr-xspecgen.sh2
10 files changed, 51 insertions, 41 deletions
diff --git a/NEWS b/NEWS
index aa8604e0..f720a434 100644
--- a/NEWS
+++ b/NEWS
@@ -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
diff --git a/driver.c b/driver.c
index 5b4d0245..6011c2a6 100644
--- a/driver.c
+++ b/driver.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">&lt;esr@snark.thyrsus.com&gt;</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;
diff --git a/pop3.c b/pop3.c
index 5b809a1a..f5cb3b75 100644
--- a/pop3.c
+++ b/pop3.c
@@ -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 */
diff --git a/sink.c b/sink.c
index dedcda83..15531224 100644
--- a/sink.c
+++ b/sink.c
@@ -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 */
{
diff --git a/specgen.sh b/specgen.sh
index 4d9d9e47..7adcc0e3 100755
--- a/specgen.sh
+++ b/specgen.sh
@@ -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.