diff --git a/postfix/HISTORY b/postfix/HISTORY index db56eee6f..cc6a04edf 100644 --- a/postfix/HISTORY +++ b/postfix/HISTORY @@ -2740,7 +2740,7 @@ Apologies for any names omitted. Feature: control over how address extensions are propagated to other addresses. By default, propagation of unmatched address extensions is now restricted to canonical and - virtual mappings. Specify "propagate_unmatched_extension + virtual mappings. Specify "propagate_unmatched_extensions = canonical, virtual, alias, forward, include" to restore previous behavior. @@ -2790,22 +2790,14 @@ Apologies for any names omitted. discarded" warning when mail is dropped on the floor. Requested by Michael Hasenstein, SuSE, Germany. -19990516 - - Feature: per-service peak and average process limit. When - the system is lightly loaded, use the per-service peak - process limit. When the system is under stress, use the - per-service average process limit. The per-service average - process count is computed once a minute. - 19990517 Bugfix: reject_non_fqdn_sender/recipient would pass user@[ip_address] regardless of destination. Eric Cholet had the honor of suffering from this one. -19990527 +1990601 - More SMTP client logging for easier debugging: the smtp - client now logs hostname[ip.addr], and logs every failed - attempt to reach an MX host, not just the last one. + Bugfix: emit a blank line before a MIME boundary; the line + is part of the boundary. File: bounce/bounce_notify_service.c. + Wolfgang Segmuller, IBM Research. diff --git a/postfix/PCRE_README b/postfix/PCRE_README index 1c743b7ca..3e4d21250 100644 --- a/postfix/PCRE_README +++ b/postfix/PCRE_README @@ -19,8 +19,8 @@ from: You will need to add -DHAS_PCRE and a -I for the PCRE header to CCARGS, and add the path to the PCRE library to AUXLIBS, for example: - make -f Makefile.init makefiles 'CCARGS=-DHAS_PCRE -I../../pcre-2.04' \ - 'AUXLIBS=../../pcre-2.04/libpcre.a' + make -f Makefile.init makefiles 'CCARGS=-DHAS_PCRE -I../../pcre-2.05' \ + 'AUXLIBS=../../pcre-2.05/libpcre.a' [note: earlier pcre versions have problems -- Wietse] diff --git a/postfix/RELEASE_NOTES b/postfix/RELEASE_NOTES index 0d3f3744a..9744e68cf 100644 --- a/postfix/RELEASE_NOTES +++ b/postfix/RELEASE_NOTES @@ -1,4 +1,4 @@ -Incompatible changes with snapshot-19990513: +Incompatible changes with postfix-19990601: =========================================== - The SMTP server now delays all UCE restrictions until the RCPT @@ -24,10 +24,10 @@ libexec subdirectory, command executables in the bin subdirectory. The INSTALL instructions now recommend installing daemons and commands into separate directories. -Major changes with snapshot-19990513: +Major changes with postfix-19990601: ===================================== -- New USER, EXTENSION, LOCAL, DOMAIN. and RECIPIENT environment +- New USER, EXTENSION, LOCAL, DOMAIN and RECIPIENT environment variables for delivery to command (including mailbox_command) by the local delivery agent. As you might expect, the information is censored. The list of acceptable characters is specified with the diff --git a/postfix/UUCP_README b/postfix/UUCP_README new file mode 100644 index 000000000..3d8d30927 --- /dev/null +++ b/postfix/UUCP_README @@ -0,0 +1,4 @@ +In order to receive mail via UUCP, your system needs to have an +rmail command installed. A minimal rmail command can be found in +the "aux/rmail" directory. Install the command, mode 755, in a +place that can be found by the UUCP "uuxqt" command. diff --git a/postfix/aux/rmail/rmail b/postfix/aux/rmail/rmail new file mode 100755 index 000000000..44c999ee7 --- /dev/null +++ b/postfix/aux/rmail/rmail @@ -0,0 +1,8 @@ +#!/bin/sh + +# Dummy UUCP rmail command for postfix/qmail systems + +SENDMAIL="/usr/sbin/sendmail" +IFS=" " read junk from junk + +exec $SENDMAIL -f "$from" -- "$@" diff --git a/postfix/bounce/bounce_notify_service.c b/postfix/bounce/bounce_notify_service.c index 514c5aad0..53be2e8a6 100644 --- a/postfix/bounce/bounce_notify_service.c +++ b/postfix/bounce/bounce_notify_service.c @@ -130,11 +130,11 @@ static int bounce_header(VSTREAM *bounce, VSTRING *buf, const char *dest, post_mail_fprintf(bounce, "\tboundary=\"%s\"", boundary); post_mail_fputs(bounce, ""); post_mail_fputs(bounce, "This is a MIME-encapsulated message."); - post_mail_fputs(bounce, ""); /* * More MIME header. */ + post_mail_fputs(bounce, ""); post_mail_fprintf(bounce, "--%s", boundary); post_mail_fprintf(bounce, "Content-Description: %s", "Notification"); post_mail_fprintf(bounce, "Content-Type: %s", "text/plain"); @@ -217,6 +217,7 @@ static int bounce_diagnostics(char *service, VSTREAM *bounce, VSTRING *buf, * MIME header. */ #ifdef DSN + post_mail_fputs(bounce, ""); post_mail_fprintf(bounce, "--%s", boundary); post_mail_fprintf(bounce, "Content-Description: %s", "Delivery error report"); post_mail_fprintf(bounce, "Content-Type: %s", "message/delivery-status"); @@ -275,6 +276,7 @@ static int bounce_original(char *service, VSTREAM *bounce, VSTRING *buf, /* * MIME headers. */ + post_mail_fputs(bounce, ""); post_mail_fprintf(bounce, "--%s", boundary); post_mail_fprintf(bounce, "Content-Description: %s", "Undelivered Message"); post_mail_fprintf(bounce, "Content-Type: %s", headers_only ? @@ -325,6 +327,7 @@ static int bounce_original(char *service, VSTREAM *bounce, VSTRING *buf, status = (REC_PUT_BUF(bounce, rec_type, buf) != rec_type); } } + post_mail_fputs(bounce, ""); post_mail_fprintf(bounce, "--%s--", boundary); if (headers_only == 0 && rec_type != REC_TYPE_XTRA) status |= mark_corrupt(src); diff --git a/postfix/cleanup/cleanup_envelope.c b/postfix/cleanup/cleanup_envelope.c index 6e009b23e..e7c29bf1c 100644 --- a/postfix/cleanup/cleanup_envelope.c +++ b/postfix/cleanup/cleanup_envelope.c @@ -78,8 +78,7 @@ void cleanup_envelope(void) } if (type == REC_TYPE_MESG) { if (cleanup_sender == 0 || cleanup_time == 0) { - msg_warn("%s: missing sender or time envelope record", - cleanup_queue_id); + msg_warn("missing sender or time envelope record"); cleanup_errs |= CLEANUP_STAT_BAD; } else { if (warn_time == 0 && var_delay_warn_time > 0) @@ -91,8 +90,7 @@ void cleanup_envelope(void) break; } if (strchr(REC_TYPE_ENVELOPE, type) == 0) { - msg_warn("%s: unexpected record type %d in envelope", type, - cleanup_queue_id); + msg_warn("unexpected record type %d in envelope", type); cleanup_errs |= CLEANUP_STAT_BAD; break; } @@ -119,8 +117,7 @@ void cleanup_envelope(void) cleanup_sender = mystrdup(STR(clean_addr)); } else if (type == REC_TYPE_RCPT) { if (cleanup_sender == 0) { /* protect showq */ - msg_warn("%s: envelope recipient precedes sender", - cleanup_queue_id); + msg_warn("envelope recipient precedes sender"); cleanup_errs |= CLEANUP_STAT_BAD; break; } diff --git a/postfix/cleanup/cleanup_extracted.c b/postfix/cleanup/cleanup_extracted.c index 1057273f5..3bd442b79 100644 --- a/postfix/cleanup/cleanup_extracted.c +++ b/postfix/cleanup/cleanup_extracted.c @@ -90,8 +90,7 @@ void cleanup_extracted(void) } else if (type == REC_TYPE_END) { break; } else { - msg_warn("%s: unexpected record type %d in extracted segment", - cleanup_queue_id, type); + msg_warn("unexpected record type %d in extracted segment", type); cleanup_errs |= CLEANUP_STAT_BAD; if (type >= 0) cleanup_skip(); diff --git a/postfix/cleanup/cleanup_map11.c b/postfix/cleanup/cleanup_map11.c index 96069324a..0680191a8 100644 --- a/postfix/cleanup/cleanup_map11.c +++ b/postfix/cleanup/cleanup_map11.c @@ -103,8 +103,8 @@ void cleanup_map11_external(VSTRING *addr, MAPS *maps, int propagate) for (count = 0; count < MAX_RECURSION; count++) { if ((new_addr = mail_addr_map(maps, STR(addr), propagate)) != 0) { if (new_addr->argc > 1) - msg_warn("%s: multi-valued %s entry for %s", - cleanup_queue_id, maps->title, STR(addr)); + msg_warn("multi-valued %s entry for %s", + maps->title, STR(addr)); saved_addr = mystrdup(STR(addr)); vstring_strcpy(addr, new_addr->argv[0]); expand_to_self = !strcasecmp(saved_addr, STR(addr)); diff --git a/postfix/cleanup/cleanup_message.c b/postfix/cleanup/cleanup_message.c index 2a862e54c..592a8696d 100644 --- a/postfix/cleanup/cleanup_message.c +++ b/postfix/cleanup/cleanup_message.c @@ -391,8 +391,7 @@ void cleanup_message(void) break; } if (strchr(REC_TYPE_CONTENT, type) == 0) { - msg_warn("%s: %s: unexpected record type %d", - cleanup_queue_id, myname, type); + msg_warn("%s: unexpected record type %d", myname, type); cleanup_errs |= CLEANUP_STAT_BAD; break; } diff --git a/postfix/cleanup/cleanup_out.c b/postfix/cleanup/cleanup_out.c index 7be237040..dd51383e6 100644 --- a/postfix/cleanup/cleanup_out.c +++ b/postfix/cleanup/cleanup_out.c @@ -84,8 +84,7 @@ void cleanup_out(int type, char *string, int len) if (CLEANUP_OUT_OK()) { if (rec_put(cleanup_dst, type, string, len) < 0) { if (errno == EFBIG) { - msg_warn("%s: queue file size limit exceeded", - cleanup_queue_id); + msg_warn("queue file size limit exceeded"); cleanup_errs |= CLEANUP_STAT_SIZE; } else { msg_warn("%s: write queue file: %m", cleanup_queue_id); diff --git a/postfix/cleanup/cleanup_skip.c b/postfix/cleanup/cleanup_skip.c index d9d22ed5c..00f73aa4b 100644 --- a/postfix/cleanup/cleanup_skip.c +++ b/postfix/cleanup/cleanup_skip.c @@ -46,7 +46,7 @@ void cleanup_skip(void) { int type; - msg_warn("%s: skipping further client input", cleanup_queue_id); + msg_warn("skipping further client input"); /* * XXX Rely on the front-end programs to enforce record size limits. diff --git a/postfix/conf/main.cf.default b/postfix/conf/main.cf.default index 45bfd12e9..f95f192c4 100644 --- a/postfix/conf/main.cf.default +++ b/postfix/conf/main.cf.default @@ -62,7 +62,7 @@ luser_relay = mail_name = Postfix mail_owner = postfix mail_spool_directory = /var/mail -mail_version = Snapshot-19990527 +mail_version = Beta-19990601 mailbox_command = mailbox_transport = maps_rbl_domains = rbl.maps.vix.com diff --git a/postfix/global/mail_version.h b/postfix/global/mail_version.h index 369c9134a..bdc015579 100644 --- a/postfix/global/mail_version.h +++ b/postfix/global/mail_version.h @@ -15,7 +15,7 @@ * Version of this program. */ #define VAR_MAIL_VERSION "mail_version" -#define DEF_MAIL_VERSION "Snapshot-19990527" +#define DEF_MAIL_VERSION "Beta-19990601" extern char *var_mail_version; /* LICENSE diff --git a/postfix/html/faq.html b/postfix/html/faq.html index 16cbd5033..0564efbd2 100644 --- a/postfix/html/faq.html +++ b/postfix/html/faq.html @@ -283,7 +283,7 @@ delivery. Normally, Postfix attempts to deliver outbound mail at its convenience. If your machine uses on-demand dialup IP, this causes your system -to place a telephone call whenever you submit mail, and whenever +to place a telephone call whenever you submit new mail, and whenever Postfix retries to deliver delayed mail. To prevent such telephone calls from being placed, disable spontaneous SMTP mail deliveries. @@ -323,6 +323,12 @@ that are disconnected most of the time)
+ When you disable DNS lookups, you must specify a relayhost + as either a numeric IP address, or as a hostname that appears +in /etc/hosts. + +
+
@@ -340,12 +346,12 @@ Put the following command into your PPP or SLIP dialup scripts:
The exact location of the sendmail command is system-specific.
-With some UNIX versions, usr /usr/lib/sendmail.
+With some UNIX versions, use /usr/lib/sendmail.
If you have disabled spontaneous SMTP
-mail delivery you need to run this command occasionally while
-the dialup link is up, so that newly-posted mail is flushed from
-the queue.
+mail delivery, you also need to run the above command every
+now and then while the dialup link is up, so that newly-posted mail
+is flushed from the queue.
diff --git a/postfix/master/Makefile.in b/postfix/master/Makefile.in
index a8d7b9631..fe194f86e 100644
--- a/postfix/master/Makefile.in
+++ b/postfix/master/Makefile.in
@@ -2,10 +2,10 @@ SHELL = /bin/sh
SRCS = master.c master_conf.c master_ent.c master_sig.c master_avail.c \
master_spawn.c master_service.c master_status.o master_listen.c \
master_proto.c single_server.c multi_server.c master_vars.c \
- master_wakeup.c master_sample.c
+ master_wakeup.c
OBJS = master.o master_conf.o master_ent.o master_sig.o master_avail.o \
master_spawn.o master_service.o master_status.o master_listen.o \
- master_vars.o master_wakeup.o master_sample.o
+ master_vars.o master_wakeup.o
LIB_OBJ = single_server.o multi_server.o trigger_server.o master_proto.o
HDRS = mail_server.h master_proto.h
INT_HDR = master.h
@@ -118,7 +118,6 @@ master_ent.o: ../include/argv.h
master_ent.o: ../include/stringops.h
master_ent.o: ../include/readlline.h
master_ent.o: ../include/inet_addr_list.h
-master_ent.o: ../include/split_at.h
master_ent.o: ../include/mail_proto.h
master_ent.o: ../include/iostuff.h
master_ent.o: ../include/mail_params.h
@@ -140,11 +139,6 @@ master_proto.o: master_proto.c
master_proto.o: ../include/sys_defs.h
master_proto.o: ../include/msg.h
master_proto.o: master_proto.h
-master_sample.o: master_sample.c
-master_sample.o: ../include/sys_defs.h
-master_sample.o: ../include/events.h
-master_sample.o: ../include/msg.h
-master_sample.o: master.h
master_service.o: master_service.c
master_service.o: ../include/sys_defs.h
master_service.o: ../include/msg.h
diff --git a/postfix/master/master.c b/postfix/master/master.c
index 36f0b1e36..463d324ae 100644
--- a/postfix/master/master.c
+++ b/postfix/master/master.c
@@ -331,7 +331,6 @@ int main(int argc, char **argv)
* that there are no concurrency conflicts within the master process.
*/
signal(SIGALRM, master_watchdog);
- master_sample_start();
for (;;) {
#ifdef HAS_VOLATILE_LOCKS
if (myflock(vstream_fileno(lock_fp), MYFLOCK_EXCLUSIVE) < 0)
diff --git a/postfix/master/master.h b/postfix/master/master.h
index d54748f6e..f09af8770 100644
--- a/postfix/master/master.h
+++ b/postfix/master/master.h
@@ -27,13 +27,10 @@ typedef struct MASTER_SERV {
struct INET_ADDR_LIST *inet;
} addr_list;
int max_proc; /* upper bound on # processes */
- int max_proc_pk; /* peak upper bound */
- int max_proc_avg; /* average upper bound */
char *path; /* command pathname */
struct ARGV *args; /* argument vector */
int avail_proc; /* idle processes */
int total_proc; /* number of processes */
- float total_proc_avg; /* average number of processes */
int throttle_delay; /* failure recovery parameter */
int status_fd[2]; /* child status reports */
struct BINHASH *children; /* linkage */
@@ -158,12 +155,6 @@ extern void master_spawn(MASTER_SERV *);
extern void master_reap_child(void);
extern void master_delete_children(MASTER_SERV *);
- /*
- * master_sample.c
- */
-extern void master_sample_start(void);
-extern void master_sample_stop(void);
-
/* DIAGNOSTICS
/* BUGS
/* SEE ALSO
diff --git a/postfix/master/master_avail.c b/postfix/master/master_avail.c
index 7defd510b..e5507ef6d 100644
--- a/postfix/master/master_avail.c
+++ b/postfix/master/master_avail.c
@@ -102,10 +102,8 @@ void master_avail_listen(MASTER_SERV *serv)
* request.
*/
if (msg_verbose)
- msg_info("%s: avail %d total/avg %d/%.1f max/pk/avg %d/%d/%d", myname,
- serv->avail_proc, serv->total_proc, serv->total_proc_avg,
- serv->max_proc, serv->max_proc, serv->max_proc_pk,
- serv->max_proc_avg);
+ msg_info("%s: avail %d total %d max %d", myname,
+ serv->avail_proc, serv->total_proc, serv->max_proc);
if (serv->avail_proc < 1
&& MASTER_LIMIT_OK(serv->max_proc, serv->total_proc)
&& !MASTER_THROTTLED(serv)) {
diff --git a/postfix/master/master_conf.c b/postfix/master/master_conf.c
index 85da4619d..083295531 100644
--- a/postfix/master/master_conf.c
+++ b/postfix/master/master_conf.c
@@ -124,8 +124,7 @@ void master_config(void)
else {
serv->flags &= ~MASTER_FLAG_MARK;
serv->wakeup_time = entry->wakeup_time;
- serv->max_proc_pk = entry->max_proc_pk;
- serv->max_proc_avg = entry->max_proc_avg;
+ serv->max_proc = entry->max_proc;
serv->throttle_delay = entry->throttle_delay;
SWAP(char *, serv->path, entry->path);
SWAP(ARGV *, serv->args, entry->args);
diff --git a/postfix/master/master_ent.c b/postfix/master/master_ent.c
index 3557f4fa1..ae77491ca 100644
--- a/postfix/master/master_ent.c
+++ b/postfix/master/master_ent.c
@@ -84,7 +84,6 @@
#include