From d1909625d1cedaf9ae68a53a188b0b94e1152fd5 Mon Sep 17 00:00:00 2001 From: Wietse Venema Date: Wed, 15 Jan 2003 00:00:00 -0500 Subject: [PATCH] postfix-2.0.1-20030115 --- postfix/HISTORY | 22 ++++++++++++++++++++++ postfix/README_FILES/MYSQL_README | 16 ++++++++-------- postfix/conf/post-install | 1 - postfix/makedefs | 12 +++++------- postfix/postfix-install | 12 ------------ postfix/src/global/dict_proxy.c | 1 + postfix/src/global/mail_version.h | 2 +- postfix/src/smtpd/smtpd_check.c | 5 +++++ postfix/src/trivial-rewrite/transport.c | 1 + postfix/src/virtual/Makefile.in | 2 +- 10 files changed, 44 insertions(+), 30 deletions(-) diff --git a/postfix/HISTORY b/postfix/HISTORY index 3be2a10cb..3265d20d3 100644 --- a/postfix/HISTORY +++ b/postfix/HISTORY @@ -7735,6 +7735,28 @@ Apologies for any names omitted. For safety sake, threw in the local postmaster address as well. File: smtpd/smtpd_check.c. +20030113 + + Added MAILER-DAEMON to the list of always recognized local + addresses, since it is generated by Postfix bounces. File: + smtpd/smtpd_check.c. + +20030114 + + Bugfix: transport_errno was not reset upon successful + transport map wildcard lookup after an earlier failure. + Reported by Victor Duchovny. File: trivial-rewrite/transport.c. + + Cleanup: unnecessary warnings from the proxymap client + after proxymap server disconnect. File: global/dict_proxy.c. + + Cleanup: Patrik Rak found a few more chattr invocations + that were missed 20021209. Files: postfix-install, + conf/post-install. + + Cleanup: the pcre-config command can produce null outputs. + Matthias Andree. File: makedefs. + Open problems: Med: make qmgr recipient bounce/defer activity asynchronous diff --git a/postfix/README_FILES/MYSQL_README b/postfix/README_FILES/MYSQL_README index 2f11bd956..c8004c1e1 100644 --- a/postfix/README_FILES/MYSQL_README +++ b/postfix/README_FILES/MYSQL_README @@ -6,8 +6,8 @@ client library, which can be obtained from: http://www.mysql.com/downloads/ http://sourceforge.net/projects/mysql/ -In order to build postfix with mysql map support, you will need to add --DHAS_MYSQL and -I for the directory containing the mysql headers, and +In order to build postfix with mysql map support, you will need to add +-DHAS_MYSQL and -I for the directory containing the mysql headers, and the mysqlclient library (and libm) to AUXLIBS, for example: make -f Makefile.init makefiles \ @@ -29,7 +29,7 @@ in main.cf like this: alias_maps = mysql:/etc/postfix/mysql-aliases.cf The file /etc/postfix/mysql-aliases.cf specifies lots of information -telling postfix how to reference the mysql database. An example mysql +telling postfix how to reference the mysql database. An example mysql map config file follows: # @@ -39,7 +39,7 @@ map config file follows: # the user name and password to log into the mysql server user = someone -password = some_password +password = some_password # the database name on the servers dbname = customer_database @@ -55,7 +55,7 @@ where_field = alias additional_conditions = and status = 'paid' # the above variables will result in a query of -# the form: +# the form: # select forw_addr from mxaliases where alias = '$lookup' and status = 'paid' # ($lookup is escaped so if it contains single quotes or other odd # characters, it will not cause a parse error in the sql). @@ -74,13 +74,13 @@ databases: you can use one for a virtual table, one for an access table, and one for an aliases table if you want. Since sites that have a need for multiple mail exchangers may enjoy -the convenience of using a networked mailer database, but do not want -to introduce a single point of failure to their system, we've included +the convenience of using a networked mailer database, but do not want +to introduce a single point of failure to their system, we've included the ability to have postfix reference multiple hosts for access to a single mysql map. This will work if sites set up mirrored mysql databases on two or more hosts. Whenever queries fail with an error at one host, the rest of the hosts will be tried in order. Each host -that is in an error state will undergo a reconnection attempt every so +that is in an error state will undergo a reconnection attempt every so often, and if no mysql server hosts are reachable, then mail will be deferred until at least one of those hosts is reachable. diff --git a/postfix/conf/post-install b/postfix/conf/post-install index d13c8e079..7c46000dc 100644 --- a/postfix/conf/post-install +++ b/postfix/conf/post-install @@ -426,7 +426,6 @@ test -n "$create" && { if [ -n "$create" -a "$type" = "d" -a -n "$create_flag" -a ! -d "$path" ] then mkdir $path || exit 1 - $CHATTR $path >/dev/null 2>/dev/null set_permission=1 # Update all owner/group/mode settings. elif [ -n "$set_perms" ] diff --git a/postfix/makedefs b/postfix/makedefs index b63eaf5ef..37cf8d989 100644 --- a/postfix/makedefs +++ b/postfix/makedefs @@ -290,13 +290,11 @@ esac case "$CCARGS" in *-DHAS_PCRE*) ;; *-DNO_PCRE*) ;; - *) pcre_cflags=`(pcre-config --cflags) 2>/dev/null` - pcre_libs=`(pcre-config --libs) 2>/dev/null` - if [ -n "$pcre_cflags" -a -n "$pcre_libs" ] - then - CCARGS="$CCARGS -DHAS_PCRE $pcre_cflags" - AUXLIBS="$AUXLIBS $pcre_libs" - fi + *) pcre_cflags=`(pcre-config --cflags) 2>/dev/null` && + pcre_libs=`(pcre-config --libs) 2>/dev/null` && { + CCARGS="$CCARGS -DHAS_PCRE $pcre_cflags" + AUXLIBS="$AUXLIBS $pcre_libs" + } ;; esac diff --git a/postfix/postfix-install b/postfix/postfix-install index 964dcdacb..eb6a3c68a 100644 --- a/postfix/postfix-install +++ b/postfix/postfix-install @@ -191,17 +191,6 @@ test -x bin/postconf || { exit 1 } -# -# LINUX by default does not synchronously update directories - -# that's dangerous for mail. -# -if [ -f /usr/bin/chattr ] -then - CHATTR="/usr/bin/chattr +S" -else - CHATTR=echo -fi - case `uname -s` in HP-UX*) FMT=cat;; *) FMT=fmt;; @@ -600,7 +589,6 @@ do test -z "$owner" || chown $owner $path || exit 1 test -z "$group" || chgrp $group $path || exit 1 chmod $mode $path || exit 1 - $CHATTR $path >/dev/null 2>/dev/null } continue;; [fl]) ;; diff --git a/postfix/src/global/dict_proxy.c b/postfix/src/global/dict_proxy.c index 5bd945d0c..d50f2ba50 100644 --- a/postfix/src/global/dict_proxy.c +++ b/postfix/src/global/dict_proxy.c @@ -220,6 +220,7 @@ DICT *dict_proxy_open(const char *map, int open_flags, int dict_flags) ATTR_TYPE_STR, MAIL_ATTR_TABLE, dict_proxy->dict.name, ATTR_TYPE_NUM, MAIL_ATTR_FLAGS, dict_proxy->in_flags, ATTR_TYPE_END) != 0 + || vstream_fflush(stream) || attr_scan(stream, ATTR_FLAG_STRICT, ATTR_TYPE_NUM, MAIL_ATTR_STATUS, &status, ATTR_TYPE_NUM, MAIL_ATTR_FLAGS, &server_flags, diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h index 86c9e433a..070b29344 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 "20030112" +#define MAIL_RELEASE_DATE "20030115" #define VAR_MAIL_VERSION "mail_version" #define DEF_MAIL_VERSION "2.0.1-" MAIL_RELEASE_DATE diff --git a/postfix/src/smtpd/smtpd_check.c b/postfix/src/smtpd/smtpd_check.c index 870e287f9..1b7e23d30 100644 --- a/postfix/src/smtpd/smtpd_check.c +++ b/postfix/src/smtpd/smtpd_check.c @@ -3313,10 +3313,15 @@ static int check_rcpt_maps(SMTPD_STATE *state, const char *recipient) if ((reply->flags & RESOLVE_CLASS_LOCAL) && *var_local_rcpt_maps + /* Generated by bounce, absorbed by qmgr. */ && !MATCH_LEFT(var_double_bounce_sender, CONST_STR(reply->recipient), strlen(var_double_bounce_sender)) + /* Absorbed by qmgr. */ && !MATCH_LEFT(MAIL_ADDR_POSTMASTER, CONST_STR(reply->recipient), strlen(MAIL_ADDR_POSTMASTER)) + /* Generated by bounce. */ + && !MATCH_LEFT(MAIL_ADDR_MAIL_DAEMON, CONST_STR(reply->recipient), + strlen(MAIL_ADDR_MAIL_DAEMON)) && NOMATCH(local_rcpt_maps, CONST_STR(reply->recipient))) return (smtpd_check_reject(state, MAIL_ERROR_BOUNCE, "%d <%s>: User unknown%s", diff --git a/postfix/src/trivial-rewrite/transport.c b/postfix/src/trivial-rewrite/transport.c index 28abcb63a..3c0cfc8a3 100644 --- a/postfix/src/trivial-rewrite/transport.c +++ b/postfix/src/trivial-rewrite/transport.c @@ -190,6 +190,7 @@ void transport_wildcard_init(void) #define PARTIAL DICT_FLAG_FIXED if (find_transport_entry(WILDCARD, "", FULL, channel, nexthop)) { + transport_errno = 0; wildcard_channel = channel; wildcard_nexthop = nexthop; if (msg_verbose) diff --git a/postfix/src/virtual/Makefile.in b/postfix/src/virtual/Makefile.in index ecfc44fc0..8c47cfe0d 100644 --- a/postfix/src/virtual/Makefile.in +++ b/postfix/src/virtual/Makefile.in @@ -11,7 +11,7 @@ CFLAGS = $(DEBUG) $(OPT) $(DEFS) PROG = virtual TESTPROG= INC_DIR = ../../include -LIBS = ../../lib/libmaster.a ../../lib/libglobal.a ../../lib/libutil.a $(AUXLIBS) +LIBS = ../../lib/libmaster.a ../../lib/libglobal.a ../../lib/libutil.a .c.o:; $(CC) $(CFLAGS) -c $*.c