]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-2.0.1-20030112
authorWietse Venema <wietse@porcupine.org>
Sun, 12 Jan 2003 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <viktor@dukhovni.org>
Tue, 5 Feb 2013 06:28:42 +0000 (06:28 +0000)
12 files changed:
postfix/HISTORY
postfix/README_FILES/ADDRESS_CLASS_README
postfix/RELEASE_NOTES
postfix/conf/master.cf
postfix/html/faq.html
postfix/makedefs
postfix/mantools/postlink
postfix/src/global/dict_proxy.c
postfix/src/global/mail_version.h
postfix/src/proxymap/proxymap.c
postfix/src/smtpd/smtpd_check.c
postfix/src/util/clean_env.c

index c7f35b6916e9ac9e0ab575ef98854c9549b3f490..3be2a10cb9bf0d4f4e72cf7ac38e6a24b46a3841 100644 (file)
@@ -7720,6 +7720,21 @@ Apologies for any names omitted.
        We need a better process retirement strategy. File:
        master/multi_server.c.
 
+20030110
+
+       Cleanup: the virtual_mailbox_maps parameter is now optional
+       even when virtual_mailbox_domains is. This makes virtual
+       mailbox domains more like relay domains and the local
+       domain.
+
+       Portability: the makedefs script now uses the pcre-config
+       utility to find out where things are installed.
+
+       Bugfix: the SMTP server did not recognize the local built-in
+       double bounce address as local. Reported by Matthias Andree.
+       For safety sake, threw in the local postmaster address as
+       well.  File:  smtpd/smtpd_check.c.
+
 Open problems:
 
        Med: make qmgr recipient bounce/defer activity asynchronous
index 91cba34cc0f965d612427318e6b12ac67ea88a94..8a77dae12101b928b32bf19c49923cc9d498e4e9 100644 (file)
@@ -47,16 +47,18 @@ alias           domains
            is $virtual_alias_maps for Postfix 1.1 compatibility)
 
 virtual        For hosted domains with their own mailboxes
-mailbox        Known recipients are listed in $virtual_mailbox_maps
+mailbox        Known recipients are listed in $virtual_mailbox_maps (if
+           this parameter is empty, the Postfix SMTP server accepts
+           all recipients for domains listed in $virtual_mailbox_domains)
        Domain names are listed in $virtual_mailbox_domains (default
            is $virtual_mailbox_maps for Postfix 1.1 compatibility)
        Default delivery agent: virtual
 
 relay  For remote destinations that list your system as MX host
        Domain names are listed in $relay_domains
-       Known recipients are listed in $relay_recipient_maps (default
-           is empty; if $relay_recipient_maps is empty, the Postfix
-           SMTP server accepts all recipients)
+       Known recipients are listed in $relay_recipient_maps (if
+           this parameter is empty, the Postfix SMTP server accepts
+           all recipients for domains listed in $relay_domains)
        Default delivery agent: relay (clone of default smtp agent)
 
 other  Restricted to mail from authorized clients
index 69a06c461b5e8b2cbf96d5ba05813819dee3da9d..e4e8cf33b6ae58e46a2e6264fe96e17723a70c13 100644 (file)
@@ -22,6 +22,16 @@ snapshot release).  Patches change the patchlevel and the release
 date. Snapshots change only the release date, unless they include
 the same bugfixes as a patch release.
 
+Incompatible changes with Postfix snapshot 2.0.1-20030112
+=========================================================
+
+The Postfix build procedure now uses the pcre-config utility (part
+of PCRE version 3) to find out the pathnames of the PCRE include
+file and object library, instead of probing /usr/include and/or
+/usr/lib. To build with PCRE version 2 support you will have to
+specify pathnames as described in PCRE_README. To build without
+PCRE support, specify:  make Makefiles CCARGS="-DNO_PRCE".
+
 Incompatible changes with Postfix snapshot 2.0.0-20030104
 =========================================================
 
index e2ca2a137bdd473e3f06d58ad8381e79c76468a1..da744385ca51a656330eb2230ccb5891bd85cf35 100644 (file)
@@ -81,6 +81,7 @@ defer   unix  -       -       n       -       0       bounce
 trace    unix  -       -       n       -       0       bounce
 verify   unix  -       -       n       -       1       verify
 flush    unix  n       -       n       1000?   0       flush
+proxymap  unix -       -       n       -       -       proxymap
 smtp     unix  -       -       n       -       -       smtp
 relay    unix  -       -       n       -       -       smtp
 #      -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
index 31ef4b176b8aa15816a62788e44cc7c165e7694a..dba261f2ac0bec483d77098e1d0434e74656f346 100644 (file)
@@ -2095,6 +2095,12 @@ you use the default Postfix local delivery agent:
 
 <p>
 
+You need the <b>proxy:</b> part only if <b>master.cf</b> specifies
+that the Postfix SMTP server runs chrooted. As distributed by the
+author, Postfix runs no daemons chrooted.
+
+<p>
+
 The local recipients tables are searched by the recipient address
 (user@domain) and by the recipient name (the address minus the
 domain). Postfix does not care what the lookup result looks like,
index 730b64e9d0d3d8c975e067cb20d6fe8a4057bbab..b63eaf5ef9f7433ce9692a807b8268d2e3f741af 100644 (file)
@@ -191,10 +191,6 @@ case "$SYSTEM.$RELEASE" in
                    echo "See the RELEASE_NOTES file for more information." 1>&2
                    exit 1
                fi
-               if [ -f /usr/include/pcre/pcre.h ]
-               then
-                   CCARGS="$CCARGS -DHAS_PCRE -I/usr/include/pcre"
-               fi
                # GDBM locks the DBM .pag file after open. This breaks postmap.
                # if [ -f /usr/include/gdbm-ndbm.h ]
                # then
@@ -206,7 +202,7 @@ case "$SYSTEM.$RELEASE" in
                #     GDBM_LIBS=gdbm
                # fi
                SYSLIBS="-ldb"
-               for name in nsl resolv pcre $GDBM_LIBS
+               for name in nsl resolv $GDBM_LIBS
                do
                    test -e /usr/lib/lib$name.a -o -e /usr/lib/lib$name.so \
                        -o -e /lib/lib$name.a -o -e /lib/lib$name.so \
@@ -288,6 +284,22 @@ Rhapsody.5*|Darwin.*)
           *)   echo "Unknown system type: $SYSTEM $RELEASE" 1>&2; exit 1;;
 esac
 
+#
+# PCRE 3.x has a pcre-config utility so we don't have to guess.
+#
+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
+               ;;
+esac
+
 # Defaults that can be overruled (make makefiles CC=cc OPT=-O6 DEBUG=)
 # Disable optimizations by default when compiling for Purify. Disable
 # optimizations by default with gcc 2.8, until the compiler is known to
index 1f6d26ebd6825f9212236a505ba5a9f7ae49b14b..a280399f242a70cf959240d9d2027857d1a630e6 100755 (executable)
@@ -24,6 +24,7 @@ exec sed '
        s/[<bB>]*smtp[</bB>]*(8)/<a href="smtp.8.html">&<\/a>/
        s/[<bB>]*smtpd[</bB>]*(8)/<a href="smtpd.8.html">&<\/a>/
        s/[<bB>]*spawn[</bB>]*(8)/<a href="spawn.8.html">&<\/a>/
+       s/[<bB>]*trace[</bB>]*(8)/<a href="trace.8.html">&<\/a>/
        s/[<bB>]*triv[-</bB>]*\n*[ <bB>]*ial[-</bB>]*\n*[ <bB>]*rewrite[</bB>]*(8)/<a href="trivial-rewrite.8.html">&<\/a>/
        s/[<bB>]*mailq[</bB>]*(1)/<a href="mailq.1.html">&<\/a>/
        s/[<bB>]*newaliases[</bB>]*(1)/<a href="newaliases.1.html">&<\/a>/
index 67fff08f2f2e376dd316cd6a90c8cfd5c8009dab..5bd945d0cfdb46f47f34de1944de3b13d6ff3a93 100644 (file)
@@ -68,7 +68,6 @@
 typedef struct {
     DICT    dict;                      /* generic members */
     int     in_flags;                  /* caller-specified flags */
-    CLNT_STREAM *client;               /* server handle */
     VSTRING *result;                   /* storage */
 } DICT_PROXY;
 
index 31e08b42b4b5bbd1e5b3113824e1c47dd87b1353..86c9e433a97017196d37a8c150c4b60a749c8106 100644 (file)
   * 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      "20030109"
+#define MAIL_RELEASE_DATE      "20030112"
 
 #define VAR_MAIL_VERSION       "mail_version"
-#define DEF_MAIL_VERSION       "2.0.0-" MAIL_RELEASE_DATE
+#define DEF_MAIL_VERSION       "2.0.1-" MAIL_RELEASE_DATE
 extern char *var_mail_version;
 
  /*
index a318a6291622362fa885fb17c10fc47a3f2af3d1..e81e5e852b1d67c9b5a8f6ca518a3c9b5ebc3e5d 100644 (file)
@@ -202,8 +202,9 @@ static DICT *proxy_map_find(const char *map_type_name, int request_flags,
        PROXY_MAP_FIND_ERROR_RETURN(PROXY_STAT_BAD);
     if (htable_locate(proxy_read_maps, map_type_name) == 0) {
        msg_warn("request for unapproved table: \"%s\"", map_type_name);
-       msg_warn("to approve a table for %s access, specify it in %s with %s",
-                MAIL_SERVICE_PROXYMAP, MAIN_CONF_FILE, VAR_PROXY_READ_MAPS);
+       msg_warn("to approve this table for %s access, list %s:%s in %s:%s",
+                MAIL_SERVICE_PROXYMAP, DICT_TYPE_PROXY, map_type_name,
+                MAIN_CONF_FILE, VAR_PROXY_READ_MAPS);
        PROXY_MAP_FIND_ERROR_RETURN(PROXY_STAT_DENY);
     }
 
index 4761d12565797a8087106efa6ca1b98989872bb5..870e287f90c9174d88e5a87604f201aabebdc0f4 100644 (file)
 #include <record.h>
 #include <rec_type.h>
 #include <mail_proto.h>
+#include <mail_addr.h>
 #include <verify_clnt.h>
 
 /* Application-specific. */
@@ -3308,8 +3309,14 @@ static int check_rcpt_maps(SMTPD_STATE *state, const char *recipient)
      * local delivery, because the virtual delivery agent requires
      * user@domain style addresses in its user database.
      */
+#define MATCH_LEFT(l, r, n) (strncasecmp((l), (r), (n)) == 0 && (r)[n] == '@')
+
     if ((reply->flags & RESOLVE_CLASS_LOCAL)
        && *var_local_rcpt_maps
+       && !MATCH_LEFT(var_double_bounce_sender, CONST_STR(reply->recipient),
+                      strlen(var_double_bounce_sender))
+       && !MATCH_LEFT(MAIL_ADDR_POSTMASTER, CONST_STR(reply->recipient),
+                      strlen(MAIL_ADDR_POSTMASTER))
        && NOMATCH(local_rcpt_maps, CONST_STR(reply->recipient)))
        return (smtpd_check_reject(state, MAIL_ERROR_BOUNCE,
                                   "%d <%s>: User unknown%s",
@@ -3321,6 +3328,7 @@ static int check_rcpt_maps(SMTPD_STATE *state, const char *recipient)
      * Reject mail to unknown addresses in virtual mailbox domains.
      */
     if ((reply->flags & RESOLVE_CLASS_VIRTUAL)
+       && *var_virt_mailbox_maps
        && NOMATCHV8(virt_mailbox_maps, CONST_STR(reply->recipient)))
        return (smtpd_check_reject(state, MAIL_ERROR_BOUNCE,
                                   "%d <%s>: User unknown%s",
index 4079e6d8f08bf35730e2e1e1e3057ef33b495e80..edd8675c92b446a4eba349026e7e190fb2e0e627 100644 (file)
@@ -6,8 +6,8 @@
 /* SYNOPSIS
 /*     #include <clean_env.h>
 /*
-/*     void    clean_env(export_list)
-/*     const char **export_list;
+/*     void    clean_env(preserve_list)
+/*     const char **preserve_list;
 /* DESCRIPTION
 /*     clean_env() reduces the process environment to the bare minimum.
 /*     The function takes a null-terminated list of arguments.
@@ -43,7 +43,7 @@
 
 /* clean_env - clean up the environment */
 
-void    clean_env(char **export_list)
+void    clean_env(char **preserve_list)
 {
     extern char **environ;
     ARGV   *save_list;
@@ -54,7 +54,7 @@ void    clean_env(char **export_list)
      * Preserve selected environment variables.
      */
     save_list = argv_alloc(10);
-    for (cpp = export_list; *cpp; cpp++)
+    for (cpp = preserve_list; *cpp; cpp++)
        if ((value = safe_getenv(*cpp)) != 0)
            argv_add(save_list, *cpp, value, (char *) 0);
     argv_terminate(save_list);