- New proxymap service for Postfix lookup table access via another process. This was added primarily to overcome chroot restrictions in the Postfix SMTP server (specify proxy:unix:passwd.byname for password file lookup through the proxymap server) but can also be used to consolidate the number of open tables by sharing one open table among multiple processes (specify proxy:mysql:/file/name to avoid "too many connections" problems). - With the local_recipient_maps feature turned on, the SMTP server did not recognize the local built-in double bounce address as local. Problem reported by Matthias Andree. diff -cr --new-file --exclude=.indent.pro /tmp/postfix-2.0.0.2/src/global/mail_version.h ./src/global/mail_version.h *** /tmp/postfix-2.0.0.2/src/global/mail_version.h Wed Jan 1 19:24:36 2003 --- ./src/global/mail_version.h Sun Jan 12 20:10:28 2003 *************** *** 20,29 **** * 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 "20030101" #define VAR_MAIL_VERSION "mail_version" ! #define DEF_MAIL_VERSION "2.0.0.2" extern char *var_mail_version; /* --- 20,29 ---- * 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 VAR_MAIL_VERSION "mail_version" ! #define DEF_MAIL_VERSION "2.0.1" extern char *var_mail_version; /* diff -cr --new-file --exclude=.indent.pro /tmp/postfix-2.0.0.2/HISTORY ./HISTORY *** /tmp/postfix-2.0.0.2/HISTORY Wed Jan 1 19:27:51 2003 --- ./HISTORY Sun Jan 12 12:19:44 2003 *************** *** 7451,7457 **** properly quoted just like the null address. File: global/quote_82[12]_local.c. - 20021217 Cleanup: more work on the trivial-rewrite address rewriting --- 7451,7456 ---- *************** *** 7507,7512 **** --- 7506,7550 ---- Documentation update: new-style virtual domains broke the advanced content filtering example. Files: FILTER_README, RELEASE_NOTES. + + 20030104 + + Cleanup: avoid warnings about flag mismatches when the same + lookup table is listed under both virtual_alias_maps and + virtual_mailbox_maps. Files: global/virtual8.h, virtual/virtual.c. + + Bugfix: an obscure memory leak that puzzled me for more + than a year until I found out how to reproduce it. File: + util/vstream.c. + + 20030106 + + 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. + + 20030107 + + Robustness: check that FILTER actions in SMTPD access maps + or cleanup header/body_checks have plausible syntax. Files: + smtpd/smtpd_check.c, cleanup/cleanup_message.c. + + 20030110 + + Cleanup: the virtual_mailbox_maps parameter is now optional + even when virtual_mailbox_domains is specified. 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: diff -cr --new-file --exclude=.indent.pro /tmp/postfix-2.0.0.2/Makefile.in ./Makefile.in *** /tmp/postfix-2.0.0.2/Makefile.in Tue Dec 17 20:42:31 2002 --- ./Makefile.in Sun Jan 12 11:23:26 2003 *************** *** 6,12 **** src/lmtp src/trivial-rewrite src/qmgr src/smtp src/bounce src/pipe \ src/showq src/postalias src/postcat src/postconf src/postdrop \ src/postkick src/postlock src/postlog src/postmap src/postqueue \ ! src/postsuper src/nqmgr src/qmqpd src/spawn src/flush src/virtual MANDIRS = proto man html default: update --- 6,13 ---- src/lmtp src/trivial-rewrite src/qmgr src/smtp src/bounce src/pipe \ src/showq src/postalias src/postcat src/postconf src/postdrop \ src/postkick src/postlock src/postlog src/postmap src/postqueue \ ! src/postsuper src/nqmgr src/qmqpd src/spawn src/flush src/virtual \ ! src/proxymap MANDIRS = proto man html default: update diff -cr --new-file --exclude=.indent.pro /tmp/postfix-2.0.0.2/README_FILES/ADDRESS_CLASS_README ./README_FILES/ADDRESS_CLASS_README *** /tmp/postfix-2.0.0.2/README_FILES/ADDRESS_CLASS_README Sat Dec 21 19:37:26 2002 --- ./README_FILES/ADDRESS_CLASS_README Fri Jan 10 09:38:48 2003 *************** *** 47,62 **** 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 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) Default delivery agent: relay (clone of default smtp agent) other Restricted to mail from authorized clients --- 47,64 ---- 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 (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 (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 diff -cr --new-file --exclude=.indent.pro /tmp/postfix-2.0.0.2/README_FILES/RELEASE_NOTES ./README_FILES/RELEASE_NOTES *** /tmp/postfix-2.0.0.2/README_FILES/RELEASE_NOTES Wed Jan 1 19:22:17 2003 --- ./README_FILES/RELEASE_NOTES Sun Jan 12 20:16:25 2003 *************** *** 24,29 **** --- 24,65 ---- date. Snapshots change only the release date, unless they include the same bugfixes as a patch release. + Incompatible changes with Postfix version 2.0.1 (released 20030112) + =================================================================== + + If you upgrade from Postfix 1.1 you need to restart Postfix. + + If you upgrade from Postfix 2.0 you need to "reload" Postfix. + + Version 2.0.1 introduces the proxymap service for centralized table + lookup. The upgrade procedure adds the proxymap service to the + master.cf file. If you see errors about problems contacting the + proxymap service, then you did not properly upgrade Postfix. + + The Postfix SMTP server now by default looks up the UNIX passwd + file via the new proxymap service, in order to make chrooted + operation easier. + + 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". + + Major changes with Postfix version 2.0.1 (released 20030112) + ============================================================ + + This release introduces the proxymap service for Postfix lookup + table access. This can be used to overcome chroot restrictions in + the Postfix SMTP server (specify proxy:unix:passwd.byname for + password file lookup through the proxymap server) and can be used + to consolidate the number of open tables by sharing one open table + among multiple processes (specify proxy:mysql:/file/name to avoid + "too many connections" conditions). The proxy_read_maps parameter + specifies what maps are approved for access via the proxy service + (only map references starting with "proxy:" are considered approved). + Major changes with Postfix version 2.0.0 (released 20021222, 20021223) ====================================================================== diff -cr --new-file --exclude=.indent.pro /tmp/postfix-2.0.0.2/RELEASE_NOTES ./RELEASE_NOTES *** /tmp/postfix-2.0.0.2/RELEASE_NOTES Wed Jan 1 19:22:17 2003 --- ./RELEASE_NOTES Sun Jan 12 20:16:25 2003 *************** *** 24,29 **** --- 24,65 ---- date. Snapshots change only the release date, unless they include the same bugfixes as a patch release. + Incompatible changes with Postfix version 2.0.1 (released 20030112) + =================================================================== + + If you upgrade from Postfix 1.1 you need to restart Postfix. + + If you upgrade from Postfix 2.0 you need to "reload" Postfix. + + Version 2.0.1 introduces the proxymap service for centralized table + lookup. The upgrade procedure adds the proxymap service to the + master.cf file. If you see errors about problems contacting the + proxymap service, then you did not properly upgrade Postfix. + + The Postfix SMTP server now by default looks up the UNIX passwd + file via the new proxymap service, in order to make chrooted + operation easier. + + 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". + + Major changes with Postfix version 2.0.1 (released 20030112) + ============================================================ + + This release introduces the proxymap service for Postfix lookup + table access. This can be used to overcome chroot restrictions in + the Postfix SMTP server (specify proxy:unix:passwd.byname for + password file lookup through the proxymap server) and can be used + to consolidate the number of open tables by sharing one open table + among multiple processes (specify proxy:mysql:/file/name to avoid + "too many connections" conditions). The proxy_read_maps parameter + specifies what maps are approved for access via the proxy service + (only map references starting with "proxy:" are considered approved). + Major changes with Postfix version 2.0.0 (released 20021222, 20021223) ====================================================================== diff -cr --new-file --exclude=.indent.pro /tmp/postfix-2.0.0.2/conf/main.cf ./conf/main.cf *** /tmp/postfix-2.0.0.2/conf/main.cf Sat Dec 21 16:53:01 2002 --- ./conf/main.cf Sun Jan 5 10:58:31 2003 *************** *** 172,192 **** # # - You define $mydestination domain recipients in files other than # /etc/passwd, /etc/aliases, or the $virtual_alias_maps files. ! # For example, you define $mydestination domain recipients in # the $virtual_mailbox_maps files. # ! # - You redefined the local delivery agent in master.cf. # ! # - You redefined the "local_transport" setting in main.cf. # # - You use the "luser_relay", "mailbox_transport", or "fallback_transport" # feature of the Postfix local delivery agent (see sample-local.cf). # # Beware: if the Postfix SMTP server runs chrooted, you probably have ! # to copy the passwd (not shadow) database into the jail, and perhaps ! # other files. This is system dependent. # #local_recipient_maps = unix:passwd.byname $alias_maps #local_recipient_maps = # The unknown_local_recipient_reject_code specifies the SMTP server --- 172,194 ---- # # - You define $mydestination domain recipients in files other than # /etc/passwd, /etc/aliases, or the $virtual_alias_maps files. ! # For example, you define $mydestination domain recipients in # the $virtual_mailbox_maps files. # ! # - You redefine the local delivery agent in master.cf. # ! # - You redefine the "local_transport" setting in main.cf. # # - You use the "luser_relay", "mailbox_transport", or "fallback_transport" # feature of the Postfix local delivery agent (see sample-local.cf). # # Beware: if the Postfix SMTP server runs chrooted, you probably have ! # to access the passwd file via the proxymap service, in order to ! # overcome chroot restrictions. The alternative, having a copy of ! # the system passwd file in the chroot jail is just not practical. # #local_recipient_maps = unix:passwd.byname $alias_maps + #local_recipient_maps = proxy:unix:passwd.byname $alias_maps #local_recipient_maps = # The unknown_local_recipient_reject_code specifies the SMTP server diff -cr --new-file --exclude=.indent.pro /tmp/postfix-2.0.0.2/conf/master.cf ./conf/master.cf *** /tmp/postfix-2.0.0.2/conf/master.cf Mon Dec 23 09:06:51 2002 --- ./conf/master.cf Sun Jan 12 12:04:35 2003 *************** *** 79,84 **** --- 79,85 ---- bounce unix - - n - 0 bounce defer unix - - n - 0 bounce 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 diff -cr --new-file --exclude=.indent.pro /tmp/postfix-2.0.0.2/conf/post-install ./conf/post-install *** /tmp/postfix-2.0.0.2/conf/post-install Sun Dec 22 17:45:43 2002 --- ./conf/post-install Sun Jan 12 12:06:50 2003 *************** *** 535,540 **** --- 535,549 ---- $POSTCONF -e "$unknown_local = 450" || exit 1 fi + # Add missing proxymap service to master.cf. + + grep '^proxymap.*proxymap' $config_directory/master.cf >/dev/null || { + echo Editing $config_directory/master.cf, adding missing entry for proxymap service + cat >>$config_directory/master.cf <$@ pipe.8.html: ../src/pipe/pipe.c + PATH=../mantools:$$PATH; \ + srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@ + + proxymap.8.html: ../src/proxymap/proxymap.c PATH=../mantools:$$PATH; \ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@ diff -cr --new-file --exclude=.indent.pro /tmp/postfix-2.0.0.2/html/backstage.html ./html/backstage.html *** /tmp/postfix-2.0.0.2/html/backstage.html Fri Jan 18 08:47:47 2002 --- ./html/backstage.html Sun Jan 12 12:14:31 2003 *************** *** 66,71 **** --- 66,79 ----

+

  • The proxymap daemon provides + read-only lookup service to Postfix client processes. The purpose + is to overcome chroot restrictions, and to consolidate the number + of open lookup tables by sharing one open table among multiple + processes. + +

    +

  • The spawn daemon listens on a TCP port, UNIX-domain socket or FIFO, and runs non-Postfix commands on request, with the socket or FIFO connected to the standard input, diff -cr --new-file --exclude=.indent.pro /tmp/postfix-2.0.0.2/html/faq.html ./html/faq.html *** /tmp/postfix-2.0.0.2/html/faq.html Wed Jan 1 19:23:42 2003 --- ./html/faq.html Sun Jan 12 13:22:08 2003 *************** *** 674,680 **** Specify what recipients exist (so that your queue does not fill up with undeliverable mail from spammers). ! local_recipient_maps = if maintaining recipient information is not practical. --- 674,680 ---- Specify what recipients exist (so that your queue does not fill up with undeliverable mail from spammers). !

    Specify local_recipient_maps = if maintaining recipient information is not practical. *************** *** 2090,2100 ****

          /etc/postfix/main.cf:
    !         local_recipient_maps = $alias_maps, unix:passwd.byname
      

    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, --- 2090,2106 ----

          /etc/postfix/main.cf:
    !         local_recipient_maps = $alias_maps, proxy:unix:passwd.byname
      

    + You need the proxy: part only if master.cf specifies + that the Postfix SMTP server runs chrooted. As distributed by the + author, Postfix runs no daemons chrooted. + +

    + 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, *************** *** 2107,2116 ****