Prereq: "2.1.5" diff -cr /var/tmp/postfix-2.1.5/src/global/mail_version.h ./src/global/mail_version.h *** /var/tmp/postfix-2.1.5/src/global/mail_version.h Wed Sep 15 11:32:11 2004 --- ./src/global/mail_version.h Mon May 9 11:31:57 2005 *************** *** 20,27 **** * Patches change the patchlevel and the release date. Snapshots change the * release date only. */ ! #define MAIL_RELEASE_DATE "20040915" ! #define MAIL_VERSION_NUMBER "2.1.5" #define VAR_MAIL_VERSION "mail_version" #ifdef SNAPSHOT --- 20,27 ---- * Patches change the patchlevel and the release date. Snapshots change the * release date only. */ ! #define MAIL_RELEASE_DATE "20050509" ! #define MAIL_VERSION_NUMBER "2.1.6" #define VAR_MAIL_VERSION "mail_version" #ifdef SNAPSHOT diff -cr /var/tmp/postfix-2.1.5/HISTORY ./HISTORY *** /var/tmp/postfix-2.1.5/HISTORY Wed Sep 15 11:29:39 2004 --- ./HISTORY Thu May 5 11:04:50 2005 *************** *** 9452,9454 **** --- 9452,9527 ---- Bugfix (introduced 20020803): sent the wrong bounce message type when a Delivered-To: loop was detected for a mailing list alias. Nicolas Riendeau. File: bounce_notify_util.c. + + 20041006 + + Bugfix: "sendmail -bv" did not reject the -t option. File: + sendmail/sendmail.c + + 20041228 + + Bugfix: SMTPD_PROXY_README incorrectly claimed that ":port" + in master.cf causes a server to listen only on "localhost" + without exposing the service to the network. Instead, + ":port" causes a client to connect to "localhost". + + + 20050131 + + Bugfix: when extracting recipients from message headers, + the Postfix sendmail command produced output records longer + than $line_length_limit, causing postdrop to reject the + mail. Diagnosis by Victor Duchovni. File: sendmail/sendmail.c. + + 20050208 + + Sanity check: don't allow unlimited message size with limited + mailbox size. File: local/local.c, virtual/virtual.c. + + 20050215 + + Bugfix: don't chmod queue files while running "postfix + set-permissions". This prevents mail from being labeled as + "corrupt" when a live Postfix system is upgraded. Found + by Victor Duchovni. File: conf/post-install. + + 20050227 + + Bugfix (bug introduced 20040331): with SIGHUP ignored, the + postdrop signal handler would effectively ignore SIGINT, + SIGQUIT and SIGTERM. Simplified the overly-conservative + protection against nested signals in postdrop. File: + postdrop/postdrop.c. + + 20050321 + + Robustness: don't look for SMTP status code when there was + none. File: smtp/smtp_chat.c, lmtp/lmtp_chat.c. + + 20050327 + + Bugfix: the SMTP and LMTP clients did not ask the queue + manager to reduce destination concurrency when "lost + connection" or "connection timed out" happened AFTER Postfix + received the server greeting. Files: smtp/smtp_trouble.c, + lmtp/lmtp-trouble.c. + + 20050407 + + @%^!#& Thanks to inadequate SASL documentation the client + could negotiate a security layer where none was desired. + Better documentation has become available since Postfix + SASL support was implemented, and now Postfix needs to be + fixed. Files: */*_sasl_glue.c. + + 20050412 + + Bugfix: while updating the cleanup_flush() infrastructure + in the 2.3 development release, eliminated a portability + problem that was introduced when "REJECT text" support was + added. File: cleanup/cleanup.c. + + 20050417 + + Safety: don't call syslog from a user-triggered signal + handler. File: postdrop/postdrop.c. diff -cr /var/tmp/postfix-2.1.5/README_FILES/SMTPD_PROXY_README ./README_FILES/SMTPD_PROXY_README *** /var/tmp/postfix-2.1.5/README_FILES/SMTPD_PROXY_README Thu Apr 15 21:20:50 2004 --- ./README_FILES/SMTPD_PROXY_README Thu Dec 30 15:01:10 2004 *************** *** 111,117 **** # After-filter SMTP server. Receive mail from the content filter # on localhost port 10026. # ! :10026 inet n - n - - smtpd -o smtpd_authorized_xforward_hosts=127.0.0.0/8 -o smtpd_client_restrictions= -o smtpd_helo_restrictions= --- 111,117 ---- # After-filter SMTP server. Receive mail from the content filter # on localhost port 10026. # ! 127.0.0.1:10026 inet n - n - - smtpd -o smtpd_authorized_xforward_hosts=127.0.0.0/8 -o smtpd_client_restrictions= -o smtpd_helo_restrictions= *************** *** 145,153 **** The after-filter SMTP server is a new master.cf entry: ! * The ":10026" makes the after-filter SMTP server listen on the localhost ! address only, without exposing it to the network. NEVER expose the after- ! filter SMTP server to the Internet :-) * The "-o smtpd_authorized_xforward_hosts=127.0.0.0/8" allows the after- filter SMTP server to receive remote SMTP client information from the --- 145,153 ---- The after-filter SMTP server is a new master.cf entry: ! * The "127.0.0.1:10026" makes the after-filter SMTP server listen on the ! localhost address only, without exposing it to the network. NEVER expose ! the after-filter SMTP server to the Internet :-) * The "-o smtpd_authorized_xforward_hosts=127.0.0.0/8" allows the after- filter SMTP server to receive remote SMTP client information from the *************** *** 168,175 **** Parameters that control proxying: * smtpd_proxy_filter (syntax: host:port): The host and TCP port of the ! before-queue content filter. When no host or host: is specified, localhost ! is assumed. * smtpd_proxy_timeout (default: 100s): Timeout for connecting to the before- queue content filter and for sending and receiving commands and data. All --- 168,175 ---- Parameters that control proxying: * smtpd_proxy_filter (syntax: host:port): The host and TCP port of the ! before-queue content filter. When no host or host: is specified in client ! context, localhost is assumed. * smtpd_proxy_timeout (default: 100s): Timeout for connecting to the before- queue content filter and for sending and receiving commands and data. All diff -cr /var/tmp/postfix-2.1.5/RELEASE_NOTES ./RELEASE_NOTES *** /var/tmp/postfix-2.1.5/RELEASE_NOTES Sat May 15 21:43:45 2004 --- ./RELEASE_NOTES Wed Sep 22 08:56:58 2004 *************** *** 67,72 **** --- 67,77 ---- [Incompat 20031226] Bounce messages now have a separate queue life time. This is controlled by the bounce_queue_lifetime parameter. + [Incompat 20031019] The authorized_verp_clients parameter was + renamed to smtpd_authorized_verp_clients, and the default value + was changed to disable this feature. You now have to turn it on + explicitly. + Major changes - build environment --------------------------------- diff -cr /var/tmp/postfix-2.1.5/auxiliary/qshape/qshape.pl ./auxiliary/qshape/qshape.pl *** /var/tmp/postfix-2.1.5/auxiliary/qshape/qshape.pl Sun Apr 11 16:26:02 2004 --- ./auxiliary/qshape/qshape.pl Fri May 6 12:21:55 2005 *************** *** 28,34 **** # domain distribution. By default the recipient distribution is # displayed. There can be more recipients than messages, but as # each message has only one sender, the sender distribution is a ! # a message distribution. # .IP \fB-p\fR # Generate aggregate statistics for parent domains. Top level domains # are not shown, nor are domains with fewer than \fImin_subdomains\fR --- 28,34 ---- # domain distribution. By default the recipient distribution is # displayed. There can be more recipients than messages, but as # each message has only one sender, the sender distribution is a ! # message distribution. # .IP \fB-p\fR # Generate aggregate statistics for parent domains. Top level domains # are not shown, nor are domains with fewer than \fImin_subdomains\fR *************** *** 43,49 **** # or "buckets". Each bucket has a maximum queue age that is twice # as large as that of the previous bucket. The last bucket has no # age limit. ! # .IP "\fB-b \fIbucket_time\fR" # The age limit in minutes for the first time bucket. The default # value is 5, meaning that the first bucket counts messages between # 0 and 5 minutes old. --- 43,49 ---- # or "buckets". Each bucket has a maximum queue age that is twice # as large as that of the previous bucket. The last bucket has no # age limit. ! # .IP "\fB-t \fIbucket_time\fR" # The age limit in minutes for the first time bucket. The default # value is 5, meaning that the first bucket counts messages between # 0 and 5 minutes old. *************** *** 51,57 **** # The output is right justified, with the counts for the last # bucket shown on the 80th column, the \fIterminal_width\fR can be # adjusted for wider screens allowing more buckets to be displayed ! # with truncating the domain names on the left. When a row for a # full domain name and its counters does not fit in the specified # number of columns, only the last 17 bytes of the domain name # are shown with the prefix replaced by a '+' character. Truncated --- 51,57 ---- # The output is right justified, with the counts for the last # bucket shown on the 80th column, the \fIterminal_width\fR can be # adjusted for wider screens allowing more buckets to be displayed ! # without truncating the domain names on the left. When a row for a # full domain name and its counters does not fit in the specified # number of columns, only the last 17 bytes of the domain name # are shown with the prefix replaced by a '+' character. Truncated *************** *** 76,83 **** # absolute path for each queue subdirectory even if you want the # default incoming and active queue distribution. # SEE ALSO ! # mailq(1) List all messages in the queue. ! # QSHAPE_README Examples and background material. # FILES # $config_directory/main.cf, Postfix installation parameters. # $queue_directory/maildrop/, local submission directory. --- 76,83 ---- # absolute path for each queue subdirectory even if you want the # default incoming and active queue distribution. # SEE ALSO ! # mailq(1), List all messages in the queue. ! # QSHAPE_README, Examples and background material. # FILES # $config_directory/main.cf, Postfix installation parameters. # $queue_directory/maildrop/, local submission directory. *************** *** 258,265 **** ++$q{"TOTAL"}->[0]; ++$q{"TOTAL"}->[$b]; $a = "MAILER-DAEMON" if ($a eq ""); ! $a =~ s/.*\@\.*(.*[^.])?\.*$/$1/; $a =~ s/\.\././g; my $new = 0; do { my $old = (++$q{$a}->[0] > 1); --- 258,266 ---- ++$q{"TOTAL"}->[0]; ++$q{"TOTAL"}->[$b]; $a = "MAILER-DAEMON" if ($a eq ""); ! $a =~ s/.*\@//; $a =~ s/\.\././g; + $a =~ s/\.?(.+?)\.?$/$1/; my $new = 0; do { my $old = (++$q{$a}->[0] > 1); diff -cr /var/tmp/postfix-2.1.5/conf/post-install ./conf/post-install *** /var/tmp/postfix-2.1.5/conf/post-install Wed Apr 21 21:05:34 2004 --- ./conf/post-install Thu May 5 11:03:35 2005 *************** *** 473,479 **** test -n "$set_permission" && { chown $recursive $owner $path || exit 1 test -z "$group" || chgrp $recursive $group $path || exit 1 ! chmod $recursive $mode $path || exit 1 } done IFS="$BACKUP_IFS" --- 473,484 ---- test -n "$set_permission" && { chown $recursive $owner $path || exit 1 test -z "$group" || chgrp $recursive $group $path || exit 1 ! if [ "$type" = "d" -a -n "$recursive" ] ! then ! find $path -type d -exec chmod $mode "{}" ";" ! else ! chmod $mode $path ! fi || exit 1 } done IFS="$BACKUP_IFS" diff -cr /var/tmp/postfix-2.1.5/html/SMTPD_PROXY_README.html ./html/SMTPD_PROXY_README.html *** /var/tmp/postfix-2.1.5/html/SMTPD_PROXY_README.html Thu Apr 15 21:20:50 2004 --- ./html/SMTPD_PROXY_README.html Thu Dec 30 15:01:10 2004 *************** *** 240,246 **** # After-filter SMTP server. Receive mail from the content filter # on localhost port 10026. # ! :10026 inet n - n - - smtpd -o smtpd_authorized_xforward_hosts=127.0.0.0/8 -o smtpd_client_restrictions= -o smtpd_helo_restrictions= --- 240,246 ---- # After-filter SMTP server. Receive mail from the content filter # on localhost port 10026. # ! 127.0.0.1:10026 inet n - n - - smtpd -o smtpd_authorized_xforward_hosts=127.0.0.0/8 -o smtpd_client_restrictions= -o smtpd_helo_restrictions= *************** *** 283,289 ****
The ":10026" makes the after-filter SMTP server listen on the localhost address only, without exposing it to the network. NEVER expose the after-filter SMTP server to the Internet :-)
--- 283,290 ----The "127.0.0.1:10026" makes the after-filter SMTP ! server listen on the localhost address only, without exposing it to the network. NEVER expose the after-filter SMTP server to the Internet :-)
*************** *** 314,320 ****smtpd_proxy_filter (syntax: host:port): The host and TCP port of the before-queue content filter. When no host or host: ! is specified, localhost is assumed.
smtpd_proxy_timeout (default: 100s): Timeout for connecting to the before-queue content filter and for sending and receiving --- 315,321 ----
smtpd_proxy_filter (syntax: host:port): The host and TCP port of the before-queue content filter. When no host or host: ! is specified in client context, localhost is assumed.
smtpd_proxy_timeout (default: 100s): Timeout for connecting to the before-queue content filter and for sending and receiving diff -cr /var/tmp/postfix-2.1.5/html/cleanup.8.html ./html/cleanup.8.html *** /var/tmp/postfix-2.1.5/html/cleanup.8.html Wed Apr 14 10:39:58 2004 --- ./html/cleanup.8.html Thu May 5 12:57:59 2005 *************** *** 306,314 **** The internet hostname of this mail system. myorigin ($myhostname) ! The default domain name that locally-posted mail ! appears to come from, and that locally posted mail ! is delivered to. process_id (read-only) The process ID of a Postfix command or daemon pro- --- 306,314 ---- The internet hostname of this mail system. myorigin ($myhostname) ! The domain name that locally-posted mail appears to ! come from, and that locally posted mail is deliv- ! ered to. process_id (read-only) The process ID of a Postfix command or daemon pro- diff -cr /var/tmp/postfix-2.1.5/html/local.8.html ./html/local.8.html *** /var/tmp/postfix-2.1.5/html/local.8.html Wed Apr 14 10:39:59 2004 --- ./html/local.8.html Thu May 5 12:58:00 2005 *************** *** 288,296 **** owner_request_special (yes) Give special treatment to owner-listname and list- ! name-request address localparts: don't don't split ! such addresses when the recipient_delimiter is set ! to "-". sun_mailtool_compatibility (no) Obsolete SUN mailtool compatibility feature. --- 288,296 ---- owner_request_special (yes) Give special treatment to owner-listname and list- ! name-request address localparts: don't split such ! addresses when the recipient_delimiter is set to ! "-". sun_mailtool_compatibility (no) Obsolete SUN mailtool compatibility feature. diff -cr /var/tmp/postfix-2.1.5/html/postconf.5.html ./html/postconf.5.html *** /var/tmp/postfix-2.1.5/html/postconf.5.html Thu Sep 2 15:59:39 2004 --- ./html/postconf.5.html Thu May 5 12:57:58 2005 *************** *** 1843,1849 ****
Specify a list of names and/or name=value pairs, separated by ! whitespace or comma.
--- 1843,1850 ----
Specify a list of names and/or name=value pairs, separated by ! whitespace or comma. The name=value form is supported with ! Postfix 2.1 and later.
*************** *** 3916,3922 ****
Give special treatment to owner-listname and listname-request ! address localparts: don't don't split such addresses when the recipient_delimiter is set to "-". This feature is useful for mailing lists.
--- 3917,3923 ----Give special treatment to owner-listname and listname-request ! address localparts: don't split such addresses when the recipient_delimiter is set to "-". This feature is useful for mailing lists.
*************** *** 7936,7942 ****Optional lookup tables with a) names of domains for which all addresses are aliased to addresses in other local or remote domains, and b) addresses that are aliased to addresses in other local or ! remote domains. Available before Postfix version 2.0. With Postfix 2.1 and later, this is replaced by separate controls: virtual_alias_domains and virtual_alias_maps.
--- 7937,7943 ----Optional lookup tables with a) names of domains for which all addresses are aliased to addresses in other local or remote domains, and b) addresses that are aliased to addresses in other local or ! remote domains. Available before Postfix version 2.0. With Postfix 2.0 and later, this is replaced by separate controls: virtual_alias_domains and virtual_alias_maps.
diff -cr /var/tmp/postfix-2.1.5/html/qshape.1.html ./html/qshape.1.html *** /var/tmp/postfix-2.1.5/html/qshape.1.html Thu Apr 22 13:24:23 2004 --- ./html/qshape.1.html Mon May 9 11:29:00 2005 *************** *** 29,35 **** the recipient domain distribution. By default the recipient distribution is displayed. There can be more recipients than messages, but as each message ! has only one sender, the sender distribution is a a message distribution. -p Generate aggregate statistics for parent domains. --- 29,35 ---- the recipient domain distribution. By default the recipient distribution is displayed. There can be more recipients than messages, but as each message ! has only one sender, the sender distribution is a message distribution. -p Generate aggregate statistics for parent domains. *************** *** 51,57 **** large as that of the previous bucket. The last bucket has no age limit. ! -b bucket_time The age limit in minutes for the first time bucket. The default value is 5, meaning that the first bucket counts messages between 0 and 5 minutes old. --- 51,57 ---- large as that of the previous bucket. The last bucket has no age limit. ! -t bucket_time The age limit in minutes for the first time bucket. The default value is 5, meaning that the first bucket counts messages between 0 and 5 minutes old. *************** *** 60,68 **** The output is right justified, with the counts for the last bucket shown on the 80th column, the ter- minal_width can be adjusted for wider screens ! allowing more buckets to be displayed with truncat- ! ing the domain names on the left. When a row for a ! full domain name and its counters does not fit in the specified number of columns, only the last 17 bytes of the domain name are shown with the prefix replaced by a '+' character. Truncated parent --- 60,68 ---- The output is right justified, with the counts for the last bucket shown on the 80th column, the ter- minal_width can be adjusted for wider screens ! allowing more buckets to be displayed without trun- ! cating the domain names on the left. When a row for ! a full domain name and its counters does not fit in the specified number of columns, only the last 17 bytes of the domain name are shown with the prefix replaced by a '+' character. Truncated parent *************** *** 94,101 **** incoming and active queue distribution. SEE ALSO ! mailq(1) List all messages in the queue. ! QSHAPE_README Examples and background material. FILES $config_directory/main.cf, Postfix installation parameters. --- 94,101 ---- incoming and active queue distribution. SEE ALSO ! mailq(1), List all messages in the queue. ! QSHAPE_README, Examples and background material. FILES $config_directory/main.cf, Postfix installation parameters. diff -cr /var/tmp/postfix-2.1.5/man/man1/qshape.1 ./man/man1/qshape.1 *** /var/tmp/postfix-2.1.5/man/man1/qshape.1 Sun Apr 11 16:26:08 2004 --- ./man/man1/qshape.1 Mon May 9 11:28:59 2005 *************** *** 29,35 **** domain distribution. By default the recipient distribution is displayed. There can be more recipients than messages, but as each message has only one sender, the sender distribution is a ! a message distribution. .IP \fB-p\fR Generate aggregate statistics for parent domains. Top level domains are not shown, nor are domains with fewer than \fImin_subdomains\fR --- 29,35 ---- domain distribution. By default the recipient distribution is displayed. There can be more recipients than messages, but as each message has only one sender, the sender distribution is a ! message distribution. .IP \fB-p\fR Generate aggregate statistics for parent domains. Top level domains are not shown, nor are domains with fewer than \fImin_subdomains\fR *************** *** 44,50 **** or "buckets". Each bucket has a maximum queue age that is twice as large as that of the previous bucket. The last bucket has no age limit. ! .IP "\fB-b \fIbucket_time\fR" The age limit in minutes for the first time bucket. The default value is 5, meaning that the first bucket counts messages between 0 and 5 minutes old. --- 44,50 ---- or "buckets". Each bucket has a maximum queue age that is twice as large as that of the previous bucket. The last bucket has no age limit. ! .IP "\fB-t \fIbucket_time\fR" The age limit in minutes for the first time bucket. The default value is 5, meaning that the first bucket counts messages between 0 and 5 minutes old. *************** *** 52,58 **** The output is right justified, with the counts for the last bucket shown on the 80th column, the \fIterminal_width\fR can be adjusted for wider screens allowing more buckets to be displayed ! with truncating the domain names on the left. When a row for a full domain name and its counters does not fit in the specified number of columns, only the last 17 bytes of the domain name are shown with the prefix replaced by a '+' character. Truncated --- 52,58 ---- The output is right justified, with the counts for the last bucket shown on the 80th column, the \fIterminal_width\fR can be adjusted for wider screens allowing more buckets to be displayed ! without truncating the domain names on the left. When a row for a full domain name and its counters does not fit in the specified number of columns, only the last 17 bytes of the domain name are shown with the prefix replaced by a '+' character. Truncated *************** *** 79,86 **** .SH "SEE ALSO" .na .nf ! mailq(1) List all messages in the queue. ! QSHAPE_README Examples and background material. .SH "FILES" .na .nf --- 79,86 ---- .SH "SEE ALSO" .na .nf ! mailq(1), List all messages in the queue. ! QSHAPE_README, Examples and background material. .SH "FILES" .na .nf diff -cr /var/tmp/postfix-2.1.5/man/man5/postconf.5 ./man/man5/postconf.5 *** /var/tmp/postfix-2.1.5/man/man5/postconf.5 Thu Sep 2 15:59:39 2004 --- ./man/man5/postconf.5 Wed Feb 2 20:43:04 2005 *************** *** 383,389 **** Specify a list of network/netmask patterns, separated by commas and/or whitespace. The mask specifies the number of bits in the network part of a host address. You can also specify hostnames or ! .domain names (the initial dot causes the domain to match any name below it), "/file/name" or "type:table" patterns. A "/file/name" pattern is replaced by its contents; a "type:table" lookup table is matched when a table entry matches a lookup string (the lookup --- 383,389 ---- Specify a list of network/netmask patterns, separated by commas and/or whitespace. The mask specifies the number of bits in the network part of a host address. You can also specify hostnames or ! \&.domain names (the initial dot causes the domain to match any name below it), "/file/name" or "type:table" patterns. A "/file/name" pattern is replaced by its contents; a "type:table" lookup table is matched when a table entry matches a lookup string (the lookup *************** *** 579,585 **** The external command to execute when a Postfix daemon program is invoked with the -D option. .PP ! Use "command .. & sleep 5" so that the debugger can attach before the process marches on. If you use an X-based debugger, be sure to set up your XAUTHORITY environment variable before starting Postfix. .PP --- 579,585 ---- The external command to execute when a Postfix daemon program is invoked with the -D option. .PP ! Use "command .. & sleep 5" so that the debugger can attach before the process marches on. If you use an X-based debugger, be sure to set up your XAUTHORITY environment variable before starting Postfix. .PP *************** *** 590,596 **** .ft C debugger_command = PATH=/usr/bin:/usr/X11R6/bin ! xxgdb $daemon_directory/$process_name $process_id & sleep 5 .fi .ad .ft R --- 590,596 ---- .ft C debugger_command = PATH=/usr/bin:/usr/X11R6/bin ! xxgdb $daemon_directory/$process_name $process_id & sleep 5 .fi .ad .ft R *************** *** 931,937 **** time keeping on System-V-ish systems. .PP Specify a list of names and/or name=value pairs, separated by ! whitespace or comma. .PP Example: .PP --- 931,938 ---- time keeping on System-V-ish systems. .PP Specify a list of names and/or name=value pairs, separated by ! whitespace or comma. The name=value form is supported with ! Postfix 2.1 and later. .PP Example: .PP *************** *** 2012,2018 **** .ft R .SH owner_request_special (default: yes) Give special treatment to owner-listname and listname-request ! address localparts: don't don't split such addresses when the recipient_delimiter is set to "-". This feature is useful for mailing lists. .SH parent_domain_matches_subdomains (default: see "postconf -d" output) --- 2013,2019 ---- .ft R .SH owner_request_special (default: yes) Give special treatment to owner-listname and listname-request ! address localparts: don't split such addresses when the recipient_delimiter is set to "-". This feature is useful for mailing lists. .SH parent_domain_matches_subdomains (default: see "postconf -d" output) *************** *** 2903,2909 **** Specify a list of network/netmask patterns, separated by commas and/or whitespace. The mask specifies the number of bits in the network part of a host address. You can also specify hostnames or ! .domain names (the initial dot causes the domain to match any name below it), "/file/name" or "type:table" patterns. A "/file/name" pattern is replaced by its contents; a "type:table" lookup table is matched when a table entry matches a lookup string (the lookup --- 2904,2910 ---- Specify a list of network/netmask patterns, separated by commas and/or whitespace. The mask specifies the number of bits in the network part of a host address. You can also specify hostnames or ! \&.domain names (the initial dot causes the domain to match any name below it), "/file/name" or "type:table" patterns. A "/file/name" pattern is replaced by its contents; a "type:table" lookup table is matched when a table entry matches a lookup string (the lookup *************** *** 2923,2929 **** Specify a list of network/netmask patterns, separated by commas and/or whitespace. The mask specifies the number of bits in the network part of a host address. You can also specify hostnames or ! .domain names (the initial dot causes the domain to match any name below it), "/file/name" or "type:table" patterns. A "/file/name" pattern is replaced by its contents; a "type:table" lookup table is matched when a table entry matches a lookup string (the lookup --- 2924,2930 ---- Specify a list of network/netmask patterns, separated by commas and/or whitespace. The mask specifies the number of bits in the network part of a host address. You can also specify hostnames or ! \&.domain names (the initial dot causes the domain to match any name below it), "/file/name" or "type:table" patterns. A "/file/name" pattern is replaced by its contents; a "type:table" lookup table is matched when a table entry matches a lookup string (the lookup *************** *** 2942,2948 **** Specify a list of network/netmask patterns, separated by commas and/or whitespace. The mask specifies the number of bits in the network part of a host address. You can also specify hostnames or ! .domain names (the initial dot causes the domain to match any name below it), "/file/name" or "type:table" patterns. A "/file/name" pattern is replaced by its contents; a "type:table" lookup table is matched when a table entry matches a lookup string (the lookup --- 2943,2949 ---- Specify a list of network/netmask patterns, separated by commas and/or whitespace. The mask specifies the number of bits in the network part of a host address. You can also specify hostnames or ! \&.domain names (the initial dot causes the domain to match any name below it), "/file/name" or "type:table" patterns. A "/file/name" pattern is replaced by its contents; a "type:table" lookup table is matched when a table entry matches a lookup string (the lookup *************** *** 4263,4269 **** Optional lookup tables with a) names of domains for which all addresses are aliased to addresses in other local or remote domains, and b) addresses that are aliased to addresses in other local or ! remote domains. Available before Postfix version 2.0. With Postfix 2.1 and later, this is replaced by separate controls: virtual_alias_domains and virtual_alias_maps. .SH virtual_minimum_uid (default: 100) --- 4264,4270 ---- Optional lookup tables with a) names of domains for which all addresses are aliased to addresses in other local or remote domains, and b) addresses that are aliased to addresses in other local or ! remote domains. Available before Postfix version 2.0. With Postfix 2.0 and later, this is replaced by separate controls: virtual_alias_domains and virtual_alias_maps. .SH virtual_minimum_uid (default: 100) diff -cr /var/tmp/postfix-2.1.5/man/man8/cleanup.8 ./man/man8/cleanup.8 *** /var/tmp/postfix-2.1.5/man/man8/cleanup.8 Wed Apr 14 10:27:46 2004 --- ./man/man8/cleanup.8 Thu May 5 11:05:11 2005 *************** *** 260,266 **** .IP "\fBmyhostname (see 'postconf -d' output)\fR" The internet hostname of this mail system. .IP "\fBmyorigin ($myhostname)\fR" ! The default domain name that locally-posted mail appears to come from, and that locally posted mail is delivered to. .IP "\fBprocess_id (read-only)\fR" The process ID of a Postfix command or daemon process. --- 260,266 ---- .IP "\fBmyhostname (see 'postconf -d' output)\fR" The internet hostname of this mail system. .IP "\fBmyorigin ($myhostname)\fR" ! The domain name that locally-posted mail appears to come from, and that locally posted mail is delivered to. .IP "\fBprocess_id (read-only)\fR" The process ID of a Postfix command or daemon process. diff -cr /var/tmp/postfix-2.1.5/man/man8/local.8 ./man/man8/local.8 *** /var/tmp/postfix-2.1.5/man/man8/local.8 Sun Apr 11 16:03:08 2004 --- ./man/man8/local.8 Thu May 5 11:05:11 2005 *************** *** 315,321 **** of the "owner-aliasname" alias. .IP "\fBowner_request_special (yes)\fR" Give special treatment to owner-listname and listname-request ! address localparts: don't don't split such addresses when the recipient_delimiter is set to "-". .IP "\fBsun_mailtool_compatibility (no)\fR" Obsolete SUN mailtool compatibility feature. --- 315,321 ---- of the "owner-aliasname" alias. .IP "\fBowner_request_special (yes)\fR" Give special treatment to owner-listname and listname-request ! address localparts: don't split such addresses when the recipient_delimiter is set to "-". .IP "\fBsun_mailtool_compatibility (no)\fR" Obsolete SUN mailtool compatibility feature. diff -cr /var/tmp/postfix-2.1.5/mantools/postconf2man ./mantools/postconf2man *** /var/tmp/postfix-2.1.5/mantools/postconf2man Tue May 4 15:49:06 2004 --- ./mantools/postconf2man Tue Feb 1 10:58:10 2005 *************** *** 31,36 **** --- 31,37 ---- $block .= $_; } while(($_ = <>) && /\S/); + $block =~ s/\n\./\n\\\&./g; if ($block =~ /The ":10026" makes the after-filter SMTP server listen on the localhost address only, without exposing it to the network. NEVER expose the after-filter SMTP server to the Internet :-)
--- 283,290 ----The "127.0.0.1:10026" makes the after-filter SMTP ! server listen on the localhost address only, without exposing it to the network. NEVER expose the after-filter SMTP server to the Internet :-)
*************** *** 314,320 ****smtpd_proxy_filter (syntax: host:port): The host and TCP port of the before-queue content filter. When no host or host: ! is specified, localhost is assumed.
smtpd_proxy_timeout (default: 100s): Timeout for connecting to the before-queue content filter and for sending and receiving --- 315,321 ----
smtpd_proxy_filter (syntax: host:port): The host and TCP port of the before-queue content filter. When no host or host: ! is specified in client context, localhost is assumed.
smtpd_proxy_timeout (default: 100s): Timeout for connecting to the before-queue content filter and for sending and receiving diff -cr /var/tmp/postfix-2.1.5/proto/postconf.proto ./proto/postconf.proto *** /var/tmp/postfix-2.1.5/proto/postconf.proto Tue Aug 31 10:24:30 2004 --- ./proto/postconf.proto Wed Feb 2 17:29:01 2005 *************** *** 1096,1102 ****
Specify a list of names and/or name=value pairs, separated by ! whitespace or comma.
--- 1096,1103 ----
Specify a list of names and/or name=value pairs, separated by ! whitespace or comma. The name=value form is supported with ! Postfix 2.1 and later.
*************** *** 5938,5944 ****
Give special treatment to owner-listname and listname-request ! address localparts: don't don't split such addresses when the recipient_delimiter is set to "-". This feature is useful for mailing lists.
--- 5939,5945 ----Give special treatment to owner-listname and listname-request ! address localparts: don't split such addresses when the recipient_delimiter is set to "-". This feature is useful for mailing lists.
*************** *** 6784,6789 ****Optional lookup tables with a) names of domains for which all addresses are aliased to addresses in other local or remote domains, and b) addresses that are aliased to addresses in other local or ! remote domains. Available before Postfix version 2.0. With Postfix 2.1 and later, this is replaced by separate controls: virtual_alias_domains and virtual_alias_maps.
--- 6785,6790 ----Optional lookup tables with a) names of domains for which all addresses are aliased to addresses in other local or remote domains, and b) addresses that are aliased to addresses in other local or ! remote domains. Available before Postfix version 2.0. With Postfix 2.0 and later, this is replaced by separate controls: virtual_alias_domains and virtual_alias_maps.
diff -cr /var/tmp/postfix-2.1.5/src/bounce/bounce_notify_util.c ./src/bounce/bounce_notify_util.c *** /var/tmp/postfix-2.1.5/src/bounce/bounce_notify_util.c Mon Sep 13 09:57:23 2004 --- ./src/bounce/bounce_notify_util.c Fri Feb 11 09:38:23 2005 *************** *** 460,466 **** post_mail_fputs(bounce, ""); if (bounce_info->flush == BOUNCE_MSG_FAIL) { post_mail_fputs(bounce, ! "I'm sorry to have to inform you that your message could not be"); post_mail_fputs(bounce, "be delivered to one or more recipients. It's attached below."); } else if (bounce_info->flush == BOUNCE_MSG_WARN) { --- 460,466 ---- post_mail_fputs(bounce, ""); if (bounce_info->flush == BOUNCE_MSG_FAIL) { post_mail_fputs(bounce, ! "I'm sorry to have to inform you that your message could not"); post_mail_fputs(bounce, "be delivered to one or more recipients. It's attached below."); } else if (bounce_info->flush == BOUNCE_MSG_WARN) { diff -cr /var/tmp/postfix-2.1.5/src/cleanup/cleanup.c ./src/cleanup/cleanup.c *** /var/tmp/postfix-2.1.5/src/cleanup/cleanup.c Wed Apr 14 10:25:42 2004 --- ./src/cleanup/cleanup.c Thu May 5 11:05:11 2005 *************** *** 232,238 **** /* .IP "\fBmyhostname (see 'postconf -d' output)\fR" /* The internet hostname of this mail system. /* .IP "\fBmyorigin ($myhostname)\fR" ! /* The default domain name that locally-posted mail appears to come /* from, and that locally posted mail is delivered to. /* .IP "\fBprocess_id (read-only)\fR" /* The process ID of a Postfix command or daemon process. --- 232,238 ---- /* .IP "\fBmyhostname (see 'postconf -d' output)\fR" /* The internet hostname of this mail system. /* .IP "\fBmyorigin ($myhostname)\fR" ! /* The domain name that locally-posted mail appears to come /* from, and that locally posted mail is delivered to. /* .IP "\fBprocess_id (read-only)\fR" /* The process ID of a Postfix command or daemon process. *************** *** 322,327 **** --- 322,328 ---- CLEANUP_STATE *state; int flags; int type = 0; + int status; /* * Sanity check. This service takes no command-line arguments. *************** *** 387,394 **** /* * Finish this message, and report the result status to the client. */ attr_print(src, ATTR_FLAG_NONE, ! ATTR_TYPE_NUM, MAIL_ATTR_STATUS, cleanup_flush(state), ATTR_TYPE_STR, MAIL_ATTR_WHY, state->reason ? state->reason : "", ATTR_TYPE_END); --- 388,396 ---- /* * Finish this message, and report the result status to the client. */ + status = cleanup_flush(state); /* in case state is modified */ attr_print(src, ATTR_FLAG_NONE, ! ATTR_TYPE_NUM, MAIL_ATTR_STATUS, status, ATTR_TYPE_STR, MAIL_ATTR_WHY, state->reason ? state->reason : "", ATTR_TYPE_END); diff -cr /var/tmp/postfix-2.1.5/src/lmtp/lmtp_chat.c ./src/lmtp/lmtp_chat.c *** /var/tmp/postfix-2.1.5/src/lmtp/lmtp_chat.c Sat Jul 5 16:28:32 2003 --- ./src/lmtp/lmtp_chat.c Tue Mar 22 14:16:08 2005 *************** *** 175,180 **** --- 175,181 ---- static LMTP_RESP rdata; char *cp; int last_char; + int three_digs = 0; /* * Initialize the response data buffer. *************** *** 215,221 **** */ for (cp = STR(state->buffer); *cp && ISDIGIT(*cp); cp++) /* void */ ; ! if (cp - STR(state->buffer) == 3) { if (*cp == '-') continue; if (*cp == ' ' || *cp == 0) --- 216,222 ---- */ for (cp = STR(state->buffer); *cp && ISDIGIT(*cp); cp++) /* void */ ; ! if ((three_digs = (cp - STR(state->buffer) == 3)) != 0) { if (*cp == '-') continue; if (*cp == ' ' || *cp == 0) *************** *** 223,229 **** } state->error_mask |= MAIL_ERROR_PROTOCOL; } ! rdata.code = atoi(STR(state->buffer)); VSTRING_TERMINATE(rdata.buf); rdata.str = STR(rdata.buf); return (&rdata); --- 224,233 ---- } state->error_mask |= MAIL_ERROR_PROTOCOL; } ! if (three_digs != 0) ! rdata.code = atoi(STR(state->buffer)); ! else ! rdata.code = 0; VSTRING_TERMINATE(rdata.buf); rdata.str = STR(rdata.buf); return (&rdata); diff -cr /var/tmp/postfix-2.1.5/src/lmtp/lmtp_sasl_glue.c ./src/lmtp/lmtp_sasl_glue.c *** /var/tmp/postfix-2.1.5/src/lmtp/lmtp_sasl_glue.c Fri Sep 12 14:46:58 2003 --- ./src/lmtp/lmtp_sasl_glue.c Thu May 5 10:49:44 2005 *************** *** 377,383 **** */ memset(&sec_props, 0L, sizeof(sec_props)); sec_props.min_ssf = 0; ! sec_props.max_ssf = 1; /* don't allow real SASL * security layer */ sec_props.security_flags = name_mask(sasl_opts_name, lmtp_sasl_sec_mask, sasl_opts_val); --- 377,383 ---- */ memset(&sec_props, 0L, sizeof(sec_props)); sec_props.min_ssf = 0; ! sec_props.max_ssf = 0; /* don't allow real SASL * security layer */ sec_props.security_flags = name_mask(sasl_opts_name, lmtp_sasl_sec_mask, sasl_opts_val); diff -cr /var/tmp/postfix-2.1.5/src/lmtp/lmtp_trouble.c ./src/lmtp/lmtp_trouble.c *** /var/tmp/postfix-2.1.5/src/lmtp/lmtp_trouble.c Mon Jan 19 21:49:39 2004 --- ./src/lmtp/lmtp_trouble.c Mon Mar 28 11:13:32 2005 *************** *** 313,318 **** --- 313,320 ---- request->arrival_time, "%s", vstring_str(why)); } + if (request->hop_status == 0) + request->hop_status = mystrdup(vstring_str(why)); /* * Cleanup. diff -cr /var/tmp/postfix-2.1.5/src/local/local.c ./src/local/local.c *** /var/tmp/postfix-2.1.5/src/local/local.c Sun Apr 11 16:03:08 2004 --- ./src/local/local.c Tue Feb 8 14:07:29 2005 *************** *** 285,291 **** /* of the "owner-aliasname" alias. /* .IP "\fBowner_request_special (yes)\fR" /* Give special treatment to owner-listname and listname-request ! /* address localparts: don't don't split such addresses when the /* recipient_delimiter is set to "-". /* .IP "\fBsun_mailtool_compatibility (no)\fR" /* Obsolete SUN mailtool compatibility feature. --- 285,291 ---- /* of the "owner-aliasname" alias. /* .IP "\fBowner_request_special (yes)\fR" /* Give special treatment to owner-listname and listname-request ! /* address localparts: don't split such addresses when the /* recipient_delimiter is set to "-". /* .IP "\fBsun_mailtool_compatibility (no)\fR" /* Obsolete SUN mailtool compatibility feature. *************** *** 713,719 **** * file. */ if (var_mailbox_limit) { ! if (var_mailbox_limit < var_message_limit) msg_fatal("main.cf configuration error: %s is smaller than %s", VAR_MAILBOX_LIMIT, VAR_MESSAGE_LIMIT); set_file_limit(var_mailbox_limit); --- 713,719 ---- * file. */ if (var_mailbox_limit) { ! if (var_mailbox_limit < var_message_limit || var_message_limit == 0) msg_fatal("main.cf configuration error: %s is smaller than %s", VAR_MAILBOX_LIMIT, VAR_MESSAGE_LIMIT); set_file_limit(var_mailbox_limit); diff -cr /var/tmp/postfix-2.1.5/src/postdrop/postdrop.c ./src/postdrop/postdrop.c *** /var/tmp/postfix-2.1.5/src/postdrop/postdrop.c Wed Apr 14 15:30:25 2004 --- ./src/postdrop/postdrop.c Mon May 9 11:36:26 2005 *************** *** 158,167 **** * This is the fatal error handler. Don't try to do anything fancy. */ if (postdrop_path) { ! if (remove(postdrop_path)) ! msg_warn("uid=%ld: remove %s: %m", (long) getuid(), postdrop_path); ! else if (msg_verbose) ! msg_info("remove %s", postdrop_path); postdrop_path = 0; } } --- 158,164 ---- * This is the fatal error handler. Don't try to do anything fancy. */ if (postdrop_path) { ! (void) remove(postdrop_path); postdrop_path = 0; } } *************** *** 174,185 **** /* * Assume atomic signal() updates, even when emulated with sigaction(). */ ! if (signal(SIGHUP, SIG_IGN) != SIG_IGN ! && signal(SIGINT, SIG_IGN) != SIG_IGN ! && signal(SIGQUIT, SIG_IGN) != SIG_IGN ! && signal(SIGTERM, SIG_IGN) != SIG_IGN) { postdrop_cleanup(); ! exit(sig); } } --- 171,182 ---- /* * Assume atomic signal() updates, even when emulated with sigaction(). */ ! if (signal(SIGINT, SIG_IGN) != SIG_IGN) { ! (void) signal(SIGQUIT, SIG_IGN); ! (void) signal(SIGTERM, SIG_IGN); ! (void) signal(SIGHUP, SIG_IGN); postdrop_cleanup(); ! _exit(sig); } } *************** *** 203,208 **** --- 200,206 ---- const char *error_text; char *attr_name; char *attr_value; + char *junk; /* * Be consistent with file permissions. *************** *** 286,296 **** signal(SIGPIPE, SIG_IGN); signal(SIGXFSZ, SIG_IGN); - if (signal(SIGHUP, SIG_IGN) == SIG_DFL) - signal(SIGHUP, postdrop_sig); signal(SIGINT, postdrop_sig); signal(SIGQUIT, postdrop_sig); signal(SIGTERM, postdrop_sig); msg_cleanup(postdrop_cleanup); /* End of initializations. */ --- 284,294 ---- signal(SIGPIPE, SIG_IGN); signal(SIGXFSZ, SIG_IGN); signal(SIGINT, postdrop_sig); signal(SIGQUIT, postdrop_sig); signal(SIGTERM, postdrop_sig); + if (signal(SIGHUP, SIG_IGN) == SIG_DFL) + signal(SIGHUP, postdrop_sig); msg_cleanup(postdrop_cleanup); /* End of initializations. */ *************** *** 389,396 **** * will not be deleted after we have taken responsibility for delivery. */ if (postdrop_path) { ! myfree(postdrop_path); postdrop_path = 0; } /* --- 387,395 ---- * will not be deleted after we have taken responsibility for delivery. */ if (postdrop_path) { ! junk = postdrop_path; postdrop_path = 0; + myfree(junk); } /* diff -cr /var/tmp/postfix-2.1.5/src/sendmail/sendmail.c ./src/sendmail/sendmail.c *** /var/tmp/postfix-2.1.5/src/sendmail/sendmail.c Tue Apr 13 21:50:20 2004 --- ./src/sendmail/sendmail.c Thu May 5 13:58:29 2005 *************** *** 455,460 **** --- 455,461 ---- char *start; char *line; char *next_line; + int len; /* * Parse the header line, and save copies of recipient addresses in the *************** *** 483,494 **** /* * Pipe the unmodified message header through the header line folding ! * routine. */ for (line = start = STR(buf); line; line = next_line) { next_line = split_at(line, '\n'); ! output_text(context, REC_TYPE_NORM, line, next_line ? ! next_line - line - 1 : strlen(line), offset); } } --- 484,507 ---- /* * Pipe the unmodified message header through the header line folding ! * routine, and ensure that long lines are chopped appropriately. */ for (line = start = STR(buf); line; line = next_line) { next_line = split_at(line, '\n'); ! len = next_line ? next_line - line - 1 : strlen(line); ! do { ! if (len > var_line_limit) { ! output_text(context, REC_TYPE_CONT, line, var_line_limit, offset); ! line += var_line_limit; ! len -= var_line_limit; ! offset += var_line_limit; ! } else { ! output_text(context, REC_TYPE_NORM, line, len, offset); ! offset += len; ! break; ! } ! } while (len > 0); ! offset += 1; } } *************** *** 621,626 **** --- 634,641 ---- */ rec_fputs(dst, REC_TYPE_MESG, ""); if (DEL_REQ_TRACE_ONLY(flags) != 0) { + if (flags & SM_FLAG_XRCPT) + msg_fatal_status(EX_USAGE, "-t option cannot be used with -bv"); rec_fprintf(dst, REC_TYPE_NORM, "Subject: probe"); if (recipients) { rec_fprintf(dst, REC_TYPE_NORM, "To:"); diff -cr /var/tmp/postfix-2.1.5/src/smtp/smtp_chat.c ./src/smtp/smtp_chat.c *** /var/tmp/postfix-2.1.5/src/smtp/smtp_chat.c Tue Aug 17 16:47:36 2004 --- ./src/smtp/smtp_chat.c Fri Apr 1 16:41:21 2005 *************** *** 181,186 **** --- 181,187 ---- static SMTP_RESP rdata; char *cp; int last_char; + int three_digs = 0; /* * Initialize the response data buffer. *************** *** 221,227 **** */ for (cp = STR(state->buffer); *cp && ISDIGIT(*cp); cp++) /* void */ ; ! if (cp - STR(state->buffer) == 3) { if (*cp == '-') continue; if (*cp == ' ' || *cp == 0) --- 222,228 ---- */ for (cp = STR(state->buffer); *cp && ISDIGIT(*cp); cp++) /* void */ ; ! if ((three_digs = (cp - STR(state->buffer) == 3)) != 0) { if (*cp == '-') continue; if (*cp == ' ' || *cp == 0) *************** *** 229,235 **** } state->error_mask |= MAIL_ERROR_PROTOCOL; } ! rdata.code = atoi(STR(state->buffer)); VSTRING_TERMINATE(rdata.buf); rdata.str = STR(rdata.buf); return (&rdata); --- 230,239 ---- } state->error_mask |= MAIL_ERROR_PROTOCOL; } ! if (three_digs != 0) ! rdata.code = atoi(STR(state->buffer)); ! else ! rdata.code = 0; VSTRING_TERMINATE(rdata.buf); rdata.str = STR(rdata.buf); return (&rdata); diff -cr /var/tmp/postfix-2.1.5/src/smtp/smtp_sasl_glue.c ./src/smtp/smtp_sasl_glue.c *** /var/tmp/postfix-2.1.5/src/smtp/smtp_sasl_glue.c Mon Jul 14 14:03:20 2003 --- ./src/smtp/smtp_sasl_glue.c Thu May 5 10:49:49 2005 *************** *** 377,383 **** */ memset(&sec_props, 0L, sizeof(sec_props)); sec_props.min_ssf = 0; ! sec_props.max_ssf = 1; /* don't allow real SASL * security layer */ sec_props.security_flags = name_mask(sasl_opts_name, smtp_sasl_sec_mask, sasl_opts_val); --- 377,383 ---- */ memset(&sec_props, 0L, sizeof(sec_props)); sec_props.min_ssf = 0; ! sec_props.max_ssf = 0; /* don't allow real SASL * security layer */ sec_props.security_flags = name_mask(sasl_opts_name, smtp_sasl_sec_mask, sasl_opts_val); diff -cr /var/tmp/postfix-2.1.5/src/smtp/smtp_trouble.c ./src/smtp/smtp_trouble.c *** /var/tmp/postfix-2.1.5/src/smtp/smtp_trouble.c Mon Jan 19 21:49:48 2004 --- ./src/smtp/smtp_trouble.c Fri Apr 1 16:35:11 2005 *************** *** 402,407 **** --- 402,410 ---- "%s", vstring_str(why)); SMTP_RCPT_DROP(state, rcpt); } + /* XXX This assumes no fall-back relay. */ + if (request->hop_status == 0) + request->hop_status = mystrdup(vstring_str(why)); } /* diff -cr /var/tmp/postfix-2.1.5/src/smtpd/smtpd_sasl_glue.c ./src/smtpd/smtpd_sasl_glue.c *** /var/tmp/postfix-2.1.5/src/smtpd/smtpd_sasl_glue.c Sun Feb 1 13:44:55 2004 --- ./src/smtpd/smtpd_sasl_glue.c Thu May 5 10:49:53 2005 *************** *** 288,294 **** */ memset(&sec_props, 0, sizeof(sec_props)); sec_props.min_ssf = 0; ! sec_props.max_ssf = 1; /* don't allow real SASL * security layer */ sec_props.security_flags = name_mask(sasl_opts_name, smtpd_sasl_mask, sasl_opts_val); --- 288,294 ---- */ memset(&sec_props, 0, sizeof(sec_props)); sec_props.min_ssf = 0; ! sec_props.max_ssf = 0; /* don't allow real SASL * security layer */ sec_props.security_flags = name_mask(sasl_opts_name, smtpd_sasl_mask, sasl_opts_val); diff -cr /var/tmp/postfix-2.1.5/src/virtual/virtual.c ./src/virtual/virtual.c *** /var/tmp/postfix-2.1.5/src/virtual/virtual.c Tue Apr 13 21:50:41 2004 --- ./src/virtual/virtual.c Tue Feb 8 14:10:57 2005 *************** *** 446,452 **** * file. */ if (var_virt_mailbox_limit) { ! if (var_virt_mailbox_limit < var_message_limit) msg_fatal("main.cf configuration error: %s is smaller than %s", VAR_VIRT_MAILBOX_LIMIT, VAR_MESSAGE_LIMIT); set_file_limit(var_virt_mailbox_limit); --- 446,452 ---- * file. */ if (var_virt_mailbox_limit) { ! if (var_virt_mailbox_limit < var_message_limit || var_message_limit == 0) msg_fatal("main.cf configuration error: %s is smaller than %s", VAR_VIRT_MAILBOX_LIMIT, VAR_MESSAGE_LIMIT); set_file_limit(var_virt_mailbox_limit);