From: Wietse Venema Date: Tue, 7 Jan 2003 05:00:00 +0000 (-0500) Subject: postfix-2.0.0-20030107 X-Git-Tag: v2.1-RC1-20040331~85 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=90da7e1f4a36a2866f71c2aa9be11934650f051f;p=thirdparty%2Fpostfix.git postfix-2.0.0-20030107 --- diff --git a/postfix/HISTORY b/postfix/HISTORY index 63c7c98ad..b0d8f16b5 100644 --- a/postfix/HISTORY +++ b/postfix/HISTORY @@ -7690,6 +7690,18 @@ Apologies for any names omitted. It should not try to open any user/domain/uce related tables at all. File: smtpd/smtpd.c. +20020106 + + Bugfix: bouncing to owner-alias was broken, i.e. the mail + kept being deferred, and when that was fixed, another buglet + came to light. File: bounce/bounce.c. + + Robustness: the master no longer aborts with "address + already in use" when inet_interfaces specifies the same IP + address multiple times, or when a TCP service in master.cf + specifies a hostname for which the same IP address is listed + multiple times. File: master/master_ent.c. + Open problems: Med: do not postpone rejected "MAIL FROM" size information, diff --git a/postfix/src/bounce/bounce.c b/postfix/src/bounce/bounce.c index a4f77b2b9..816a3fd38 100644 --- a/postfix/src/bounce/bounce.c +++ b/postfix/src/bounce/bounce.c @@ -315,9 +315,9 @@ static int bounce_one_proto(char *service_name, VSTREAM *client) ATTR_TYPE_STR, MAIL_ATTR_ORCPT, orig_rcpt, ATTR_TYPE_STR, MAIL_ATTR_RECIP, recipient, ATTR_TYPE_STR, MAIL_ATTR_STATUS, dsn_status, - ATTR_TYPE_STR, MAIL_ATTR_ACTION, dsn_status, + ATTR_TYPE_STR, MAIL_ATTR_ACTION, dsn_action, ATTR_TYPE_STR, MAIL_ATTR_WHY, why, - ATTR_TYPE_END) != 9) { + ATTR_TYPE_END) != 10) { msg_warn("malformed request"); return (-1); } diff --git a/postfix/src/bounce/bounce_notify_util.c b/postfix/src/bounce/bounce_notify_util.c index 137c0c99d..6dd0dac48 100644 --- a/postfix/src/bounce/bounce_notify_util.c +++ b/postfix/src/bounce/bounce_notify_util.c @@ -22,7 +22,8 @@ /* /* BOUNCE_INFO *bounce_mail_one_init(queue_name, queue_id, /* encoding, orig_recipient, -/* recipient, status, why) +/* recipient, dsn_status, +/* dsn_action, why) /* const char *queue_name; /* const char *queue_id; /* const char *encoding; diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h index 04deb4c76..6ff928d0c 100644 --- a/postfix/src/global/mail_version.h +++ b/postfix/src/global/mail_version.h @@ -20,7 +20,7 @@ * Patches change the patchlevel and the release date. Snapshots change the * release date only, unless they include the same bugfix as a patch release. */ -#define MAIL_RELEASE_DATE "20030106" +#define MAIL_RELEASE_DATE "20030107" #define VAR_MAIL_VERSION "mail_version" #define DEF_MAIL_VERSION "2.0.0-" MAIL_RELEASE_DATE diff --git a/postfix/src/master/master_ent.c b/postfix/src/master/master_ent.c index 4412dff3b..cccaa8ea1 100644 --- a/postfix/src/master/master_ent.c +++ b/postfix/src/master/master_ent.c @@ -282,12 +282,14 @@ MASTER_SERV *get_master_ent() mymalloc(sizeof(*MASTER_INET_ADDRLIST(serv))); inet_addr_list_init(MASTER_INET_ADDRLIST(serv)); inet_addr_host(MASTER_INET_ADDRLIST(serv), host); + inet_addr_list_uniq(MASTER_INET_ADDRLIST(serv)); serv->listen_fd_count = MASTER_INET_ADDRLIST(serv)->used; } else if (strcasecmp(var_inet_interfaces, DEF_INET_INTERFACES) == 0) { MASTER_INET_ADDRLIST(serv) = 0; /* wild-card */ serv->listen_fd_count = 1; } else { MASTER_INET_ADDRLIST(serv) = own_inet_addr_list(); /* virtual */ + inet_addr_list_uniq(MASTER_INET_ADDRLIST(serv)); serv->listen_fd_count = MASTER_INET_ADDRLIST(serv)->used; } MASTER_INET_PORT(serv) = mystrdup(port); diff --git a/postfix/src/util/host_port.c b/postfix/src/util/host_port.c index d682918ea..fd7593101 100644 --- a/postfix/src/util/host_port.c +++ b/postfix/src/util/host_port.c @@ -15,6 +15,12 @@ /* host_port() splits a string into substrings with the host /* name or address, and the service name or port number. /* The input string is modified. +/* +/* The following input formats are understood: +/* +/* [host]:port, [host]:, [host]. +/* +/* host:port, host:, host. /* DIAGNOSTICS /* The result is a null pointer in case of success. /* In case of problems the result is a string pointer with