1_1_7-20020331 20020328 1_1_7-20020331 1_1_7-20020331 Portability fix for OPENSTEP and NEXTSTEP by Gerben Wierda. 1_1_7-20020331 File: util/sys_defs.h. 1_1_7-20020331 1_1_7-20020331 20020329 1_1_7-20020331 1_1_7-20020331 Bugfix: defer_transports broke because the flush server 1_1_7-20020331 triggered mail delivery (as if ETRN was sent) while doing 1_1_7-20020331 some internal housekeeping of per-destination logfiles. 1_1_7-20020331 Problem experienced by LaMont Jones, HP. File: flush/flush.c. 1_1_7-20020331 1_1_7-20020331 Bugfix: virtual mapping broke for addresses with embedded 1_1_7-20020331 whitespace. Fix by Victor Duchovni, Morgan Stanley. File: 1_1_7-20020331 cleanup/cleanup_map1n.c. 1_1_7-20020331 1_1_7-20020331 Feature: configurable service name for the internal services: 1_1_7-20020331 bounce, cleanup, defer, error, flush, pickup, queue, rewrite, 1_1_7-20020331 showq. This allows you to specify, for example, a non-default 1_1_7-20020331 cleanup service (smtpd -o cleanup_service_name=alt_cleanup). 1_1_7-20020331 Files: global/mail_params.[hc]. 1_1_7-20020331 1_1_7-20020331 Feature: SASL version 2 support by Jason Hoos. Files: 1_1_7-20020331 */*_sasl_glue.c, SASL_README, conf/sample-auth.cf. 1_1_7-20020331 1_1_7-20020331 20020330 1_1_7-20020331 1_1_7-20020331 Bugfix: postqueue did not pass on non-default configuration 1_1_7-20020331 directory settings when running showq while the mail system 1_1_7-20020331 is down. The super-user is now exempted from environment 1_1_7-20020331 stripping in postqueue/postqueue.c. Problem reported by 1_1_7-20020331 Victor Duchovni, Morgan Stanley. 1_1_7-20020331 1_1_8-20020505 20020402 1_1_8-20020505 1_1_8-20020505 Workaround: recognize more headers that are sent instead 1_1_8-20020505 of SMTP commands. File: smtpd/smtpd.c. 1_1_8-20020505 1_1_8-20020505 20020413 1_1_8-20020505 1_1_8-20020505 Feature: new pipe delivery agent "D" flag to prepend a 1_1_8-20020505 Delivered-To: message header. This requires single recipient 1_1_8-20020505 deliveries. Based on code by Matthias Andree. File: 1_1_8-20020505 pipe/pipe.c. 1_1_8-20020505 1_1_8-20020505 20020414 1_1_8-20020505 1_1_8-20020505 Portability: Postfix will no longer attempt to build with 1_1_8-20020505 gdbm support, because gdbm is broken. File: makedefs. 1_1_8-20020505 1_1_8-20020505 20020415 1_1_8-20020505 1_1_8-20020505 Cleanup: the attribute list IPC code did not distinguish 1_1_8-20020505 between "disconnect" and "timeout" while reading an attribute 1_1_8-20020505 list, making trouble shooting more difficult than necessary. 1_1_8-20020505 Files: util/attr_scan0.c, util/attr_scan64.c. 1_1_8-20020505 1_1_8-20020505 Cleanup: install parameter defaults can now be overruled 1_1_8-20020505 from makedefs: sendmail_path, mailq_path, newaliases_path, 1_1_8-20020505 command_directory, daemon_directory. Based on code by 1_1_8-20020505 Victor Duchovni, Morgan Stanley. File: util/sys_defs.h. 1_1_8-20020505 1_1_8-20020505 20020411 1_1_8-20020505 1_1_8-20020505 Cleanup: Use more robust quoting passing makedefs/Makefile 1_1_8-20020505 settings. This also simplifies the seven backslashes example 1_1_8-20020505 in the INSTALL file. Victor Duchovni, Morgan Stanley. 1_1_8-20020505 Files: makedefs, INSTALL. 1_1_8-20020505 1_1_8-20020505 20020417 1_1_8-20020505 1_1_8-20020505 Bugfix: the post-install script failed to upgrade master.cf 1_1_8-20020505 settings from private to public if the service was explicitly 1_1_8-20020505 configured as private. 1_1_8-20020505 1_1_8-20020505 20020418 1_1_8-20020505 1_1_8-20020505 Documentation: added CPU saving patterns for quickly skipping 1_1_8-20020505 base 64 encoded text in message bodies. Liviu Daia. 1_1_8-20020505 Files: {proto,conf}/pcre_table, {proto,conf}/regexp_table, 1_1_8-20020505 conf/sample_{regexp,pcre}_body.cf. 1_1_8-20020505 1_1_8-20020505 20020426 1_1_8-20020505 1_1_8-20020505 Bugfix: the SMTP client forgot to quote whitespace etc. 1_1_8-20020505 in a sender/recipient address when DNS lookup was turned 1_1_8-20020505 off (disable_dns_lookups = yes). Problem experienced by 1_1_8-20020505 Chip Paswater. Files: smtp/smtp_proto.c. 1_1_8-20020505 1_1_8-20020505 20020501 1_1_8-20020505 1_1_8-20020505 Feature: wildcard lookup in transport maps (lookup key 1_1_8-20020505 "*"). Code developed with Lamont Jones, HP. 1_1_8-20020505 1_1_8-20020505 Feature: a null transport:destination transport map entry 1_1_8-20020505 means proceed as if the transport map lookup failed. Code 1_1_8-20020505 developed with Lamont Jones, HP. 1_1_8-20020505 1_1_8-20020505 Feature: more efficient use of cache memory when a process 1_1_8-20020505 opens multiple Berkeley DB tables; and faster performance 1_1_8-20020505 creating large tables by using more buffer memory. Files: 1_1_8-20020505 util/dict_db.[hc], global/mkmap_db.c. Victor Duchovni, 1_1_8-20020505 Morgan Stanley. 1_1_8-20020505 1_1_8-20020505 20020503 1_1_8-20020505 1_1_8-20020505 Cleanup: postqueue silently ignored command-line arguments 1_1_8-20020505 following -p or -f options, instead of complaining; postqueue 1_1_8-20020505 produced an incorrect error message (mail system down) when 1_1_8-20020505 the command was installed with incorrect privileges. File: 1_1_8-20020505 postqueue/postqueue.c. 1_1_8-20020505 1_1_8-20020505 Bugfix: while reporting a domain name or IP address syntax 1_1_8-20020505 error, postqueue could dereference a dangling pointer with 1_1_8-20020505 some getopt() implementations. LaMont Jones, HP. File: 1_1_8-20020505 postqueue/postqueue.c. 1_1_8-20020505 1_1_8-20020505 Safety: postalias and postmap now drop root privileges 1_1_8-20020505 while processing a non-root input file. Thus, the result 1_1_8-20020505 should be writable to the source file owner. Specify the 1_1_8-20020505 -o option if this is a problem. Files: postmap/postmap.c, 1_1_8-20020505 postalias/postalias.c. 1_1_8-20020505 1_1_8-20020505 Consistency: just like postmap, postalias now copies file 1_1_8-20020505 permissions from the source file when it creates a new 1_1_8-20020505 table for the first time. File: postalias/postalias.c. 1_1_8-20020505 1_1_8-20020505 20020504 1_1_8-20020505 1_1_8-20020505 Portability: run-time test to avoid GDBM trouble. File: 1_1_8-20020505 util/dict_dbm.c. 1_1_8-20020505 1_1_8-20020505 20020505 1_1_8-20020505 1_1_8-20020505 Cleanup: revised and simplified the transport map semantics. 1_1_8-20020505 Null transport or nexhop fields now mean: "do not change": 1_1_8-20020505 use what would be used if the transport map did not exist. 1_1_8-20020505 This change eliminated a lot of code. The incompatibility 1_1_8-20020505 is that a null transport field no longer defaults to 1_1_8-20020505 $default_transport, but to $local_transport or $default_transport 1_1_8-20020505 depending on the destination, and that a transport map only 1_1_8-20020505 overrides relayhost when the table specifies explicit 1_1_8-20020505 nexthop information. Files: trivial-rewrite/transport.c, 1_1_8-20020505 trivial-rewrite/resolve.c. 1_1_8-20020505 1_1_8-20020505 Cleanup: revised the user interface for controlling the 1_1_8-20020505 Berkeley DB create and read buffer size controls. Files: 1_1_8-20020505 util/dict_db.[hc], global/mail_params.[hc], global/mkmap_db.c. 1_1_8-20020505 1_1_8-20020508 20020507 1_1_8-20020508 1_1_8-20020508 Cleanup: simplified the hash/btree cache management code. 1_1_8-20020508 The caches are now per table instead of shared, and the 1_1_8-20020508 default read cache size is reduced to 128 kBytes. File: 1_1_8-20020508 util/dict_db.c. 1_1_8-20020508 1_1_8-20020508 20020508 1_1_8-20020508 1_1_8-20020508 Bugfix: close user@domain@postfix-style.virtual.domain 1_1_8-20020508 source routing relaying loophole involving postfix-style 1_1_8-20020508 virtual domains with @virtual.domain catch-all patterns. 1_1_8-20020508 Problem reported by Victor Duchovni. File: smtpd/smtpd_check.c. 1_1_8-20020508 1_1_8-20020508 Bugfix: mail_addr_map() used the "wrong" @ character in 1_1_8-20020508 addresses with multiple @. Victor Duchovni. File: 1_1_8-20020508 global/mail_addr_map.c. 1_1_8-20020508 1_1_8-20020508 Bugfix: for address localpart quoting, now quote @ as a 1_1_8-20020508 special character everywhere, except when resolving addresses. 1_1_8-20020508 Previously, the @ was nowhere quoted as a special character, 1_1_8-20020508 not even in SMTP commands. Files: global/quote_82[12]_local.c 1_1_8-20020508 and clients. 1_1_8-20020508 1_1_9-20020509 20020509 1_1_9-20020509 1_1_9-20020509 Safety: don't allow an OK access rule lookup result for 1_1_9-20020509 user@domain@postfix-style.virtual.domain. Suggested by 1_1_9-20020509 Victor Duchovni, Morgan Stanley. File: smtpd/smtpd_check.c. 1_1_9-20020509 1_1_9-20020509 Bugfix: quote unquoted address localparts that need quoting. 1_1_9-20020509 Files: global/tok822_parse.c, global/quote_82[12]_local.c. 1_1_9-20020509 1_1_9-20020509 Documentation: simplified the advanced content filtering 1_1_9-20020509 example, and included a more advanced example for those 1_1_9-20020509 who want to squeeze out more performance without running 1_1_9-20020509 multiple Postfix instances. Text by Victor Duchovni, Morgan 1_1_9-20020509 Stanley. File: README_FILES/FILTER_README. 1_1_9-20020509 1_1_9-20020512 20020510 1_1_9-20020512 1_1_9-20020512 Feature: header/body filters now log the origin of the 1_1_9-20020512 message that is being rejected. Files: smtpd/smtpd.c, 1_1_9-20020512 qmqpd/qmqpd.c, pickup/pickup.c, cleanup/cleanup_envelope.c, 1_1_9-20020512 cleanup/cleanup_message.c. Requested by Craig Sanders, if 1_1_9-20020512 I remember correctly. 1_1_9-20020512 1_1_9-20020512 Feature: the Postfix SMTP client now passes on MIME body 1_1_9-20020512 type information (8bit, 7bit) received via SMTP, via MIME 1_1_9-20020512 headers, or via the sendmail command line. Files: 1_1_9-20020512 global/deliver_request.c, smtpd/smtpd.c, sendmail/sendmail.c, 1_1_9-20020512 cleanup/cleanup_envelope.c, cleanup/cleanup_message.c, 1_1_9-20020512 cleanup/cleanup_extracted.c, *qmgr/qmgr_message.c, 1_1_9-20020512 *qmgr/qmgr_deliver.c, smtp/smtp_proto.c, lmtp/lmtp_proto.c. 1_1_9-20020512 1_1_9-20020512 20020511 1_1_9-20020512 1_1_9-20020512 Feature: bounces now specify the proper MIME encoding (8bit, 1_1_9-20020512 7bit), depending on the MIME body type information received 1_1_9-20020512 via SMTP, via MIME headers, or via the sendmail command 1_1_9-20020512 line. Files: global/bounce.c, global/defer.c, global/abounce.c, 1_1_9-20020512 bounce/bounce_service.c, bounce/bounce_notify_util.c. 1_1_9-20020512 1_1_9-20020512 20020512 1_1_9-20020512 1_1_9-20020512 Cleanup: the SMTP client logged and bounced the CNAME 1_1_9-20020512 expanded recipient address, and thereby complicated trouble 1_1_9-20020512 shooting. File: src/smtp_proto.c. 1_1_9-20020512 1_1_9-20020512 Bugfix: the SMTP and LMTP clients bounced the quoted 1_1_9-20020512 recipient address, resulting in too much quoting in bounce 1_1_9-20020512 reports. Files: src/smtp_proto.c, lmtp/lmtp_proto.c. 1_1_9-20020512 1_1_9-20020513 20020513 1_1_9-20020513 1_1_9-20020513 Bugfix: the LDAP client used the "wrong" @ character in 1_1_9-20020513 addresses with multiple @. LaMont Jones, HP. File: 1_1_9-20020513 util/dict_ldap.c. 1_1_9-20020513 1_1_9-20020513 Feature: lots of new LDAP stuff: result_filter (filter to 1_1_9-20020513 expand results from queries), chase_referrals, 1_1_9-20020513 LaMont Jones, HP. The LDAP bind timeout now works thanks 1_1_9-20020513 to Victor Duchovni, Morgan Stanley. File: util/dict_ldap.c. 1_1_9-20020513 1_1_9-20020513 Cleanup: specify "resolve_dequoted_address = no" to prevent 1_1_9-20020513 Postfix from looking inside quotes for extra @ etc. characters 1_1_9-20020513 when resolving an address. This behavior is technically 1_1_9-20020513 more correct, but it opens a mail relay loophole with "user 1_1_9-20020513 @domain"@domain when relaying mail to a Sendmail system. 1_1_9-20020513 1_1_10-20020514 20020514 1_1_10-20020514 1_1_10-20020514 Bugfix: the new code for header address quoting sometimes 1_1_10-20020514 did not null terminate strings so that arbitrary garbage 1_1_10-20020514 could appear at the end of message headers. Reported by 1_1_10-20020514 Ralf Hildebrandt. File: global/tok822_parse.c. 1_1_10-20020514 1_1_10-20020514 Safety: user@domain@domain is no longer accepted by the 1_1_10-20020514 permit_mx_backup uce restriction (unless Postfix is configured 1_1_10-20020514 with "resolve_dequoted_address = no"). Victor Duchovni, 1_1_10-20020514 Morgan Stanley. File: smtpd/smtpd_check.c. 1_1_10-20020514 1_1_11-20020527 20020515 1_1_11-20020527 1_1_11-20020527 Workaround: flush the SMTP client output buffer when no 1_1_11-20020527 output has happened for 10+ seconds. This prevents the 1_1_11-20020527 socket from timing out, in case DNS CNAME expansion is 1_1_11-20020527 slow. Problem experienced by Alex Erdelyi, peregrine.com. 1_1_11-20020527 File: smtp/smtp_chat.c. We did the same thing for the SMTP 1_1_11-20020527 server years ago, and one wonders why the coin didn't drop 1_1_11-20020527 at the time that the SMTP client could suffer from a similar 1_1_11-20020527 problem. 1_1_11-20020527 1_1_11-20020527 20020516 1_1_11-20020527 1_1_11-20020527 Updated the FILTER_README file to turn off DNS lookups in 1_1_11-20020527 the SMTP client that feeds mail into a content filter. 1_1_11-20020527 1_1_11-20020527 20020517 1_1_11-20020527 1_1_11-20020527 Cleanup: Mailbox-Line: message header labels should be 1_1_11-20020527 X-Mailbox-Line: labels. Files: smtpd/smtpd.c, qmqpd/qmqpd.c. 1_1_11-20020527 1_1_11-20020527 20020515-21 1_1_11-20020527 1_1_11-20020527 Feature: new MIME parser, written from scratch, that 1_1_11-20020527 recognizes the structure of MIME encapsulated mail. Influenced 1_1_11-20020527 by comments from Victor Duchovni. This code can detect but 1_1_11-20020527 will not decode obscure MIME formats or obscure character 1_1_11-20020527 string encoding that Liviu Daia expresses concern about. 1_1_11-20020527 1_1_11-20020527 MIME header scanning now happens in header_checks, and is 1_1_11-20020527 faster than body_checks could ever be. This also eliminates 1_1_11-20020527 the problem with multi-line MIME headers being matched one 1_1_11-20020527 line at a time. Files: global/mime_state.[hc], 1_1_11-20020527 cleanup/cleanup_message.c. 1_1_11-20020527 1_1_11-20020527 20020521-22 1_1_11-20020527 1_1_11-20020527 Feature: 8-bit to quoted-printable conversion. First use in 1_1_11-20020527 the Postfix SMTP client. File: smtp/smtp_proto.c. 1_1_11-20020527 1_1_11-20020527 Logging: the Postfix SMTP and LMTP clients now report the 1_1_11-20020527 the protocol stage when they report a server reply. File: 1_1_11-20020527 smtp/smtp_proto.c, lmtp/lmtp_proto.c. 1_1_11-20020527 1_1_11-20020527 Bugfix: the SMTP server warned about ignored client attributes 1_1_11-20020527 (these were introduced 20020510) in mail that was submitted 1_1_11-20020527 with "sendmail -bs". File: smtpd/smtpd.c. 1_1_11-20020527 1_1_11-20020527 20020525 1_1_11-20020527 1_1_11-20020527 Feature: separation of header checks into header_checks 1_1_11-20020527 (all primary headers except MIME related headers), 1_1_11-20020527 mime_header_checks (all MIME headers including MIME headers 1_1_11-20020527 at the start of messages) and nested_header_checks (headers 1_1_11-20020527 of attached messages, except MIME related headers). 1_1_11-20020527 1_1_11-20020527 Cleanup: broke out the header value parser from the MIME 1_1_11-20020527 processor so that the code can be reused elsewhere. File: 1_1_11-20020527 global/header_token.c. 1_1_11-20020527 1_1_11-20020527 Compatibility: Postfix now recognizes "name :" as a valid 1_1_11-20020527 message header, but normalizes it to "name:" form or else 1_1_11-20020527 lots of things would break all over the place. Files: 1_1_11-20020527 global/is_header.c, global/mime_state.c. 1_1_11-20020527 1_1_11-20020527 20020526 1_1_11-20020527 1_1_11-20020527 Bugfix: the SMTP server now disallows RCPT TO:<"">, just 1_1_11-20020527 like it disallows RCPT TO:<>. File: smtpd/smtpd.c. 1_1_11-20020527 1_1_11-20020527 Feature: disable_mime_input_processing=yes/no controls 1_1_11-20020527 whether Postfix recognizes (and optionally enforces) MIME 1_1_11-20020527 formats while receiving mail. Default is NO. 1_1_11-20020527 1_1_11-20020527 Feature: disable_mime_output_conversion=yes/no controls 1_1_11-20020527 whether Postfix will convert 8BITMIME to 7BIT mail when 1_1_11-20020527 delivering mail to an SMTP server that does not announce 1_1_11-20020527 8BITMIME support. Default is NO. 1_1_11-20020527 1_1_11-20020527 Feature: strict_8bitmime=yes/no controls whether Postfix 1_1_11-20020527 rejects 8-bit characters in headers and 7-bit body parts. 1_1_11-20020527 This blocks mail from poorly written software, including 1_1_11-20020527 majordomo approval requests that contain a valid 8BITMIME 1_1_11-20020527 email message, as well as mail that is piped into ancient 1_1_11-20020527 /bin/mail implementations that do not MIME format 8-bit 1_1_11-20020527 content. Default is NO. 1_1_11-20020527 1_1_11-20020527 Feature: strict_mime_encoding_domain=yes/no controls whether 1_1_11-20020527 Postfix rejects illegal content transfer encodings for 1_1_11-20020527 multipart/* and message/*. This blocks mail from poorly 1_1_11-20020527 written software. Default is NO. 1_1_11-20020527 1_1_11-20020527 20020527 1_1_11-20020527 1_1_11-20020527 Feature: "FILTER transport:nexthop" in header/body checks. 1_1_11-20020527 After the message is queued, the message is sent through 1_1_11-20020527 a content filter. This requires different cleanup servers 1_1_11-20020527 before and after the filter, with header/body checks turned 1_1_11-20020527 off in the second cleanup server. 1_1_11-20020527 1_1_11-20020528 20020528 1_1_11-20020528 1_1_11-20020528 Feature: strict_7bit_headers and strict_8bitmime_body are 1_1_11-20020528 now separately available. To to turn on both, use 1_1_11-20020528 strict_8bitmime. 1_1_11-20020528 1_1_11-20020528 Cleanup: abandon the use of isspace(3) in the parsing of 1_1_11-20020528 RFC822 message headers. Files: global/lex_822.h and lots 1_1_11-20020528 of little places. 1_1_11-20020528 1_1_11-20020528 Documentation: replace domain.name by domain.tld in the 1_1_11-20020528 example config files. The domain exists. They were getting 1_1_11-20020528 mail from poorly configured Postfix boxes. 1_1_11-20020528 1_1_11-20020528 Bugfix: The Postfix sendmail command did not export the 1_1_11-20020528 MAIL_CONFIG environment setting to the postdrop command. 1_1_11-20020528 File: global/mail_config.h. 1_1_11-20020528 1_1_11-20020528 Incompatibility: by default, turn on the PCRE_DOTALL flag, 1_1_11-20020528 so that PCRE patterns will match multi-line message headers 1_1_11-20020528 without causing pain. Suggested by Michael Tokarev. Also 1_1_11-20020528 documented all those darned undocumented PCRE flags in the 1_1_11-20020528 pcre_table(5) manual page. Files: util/dict_pcre.c, 1_1_11-20020528 proto/pcre_table. 1_1_11-20020528 1_1_11-20020529 20020529 1_1_11-20020529 1_1_11-20020529 Bugfix: mail rejected due to MIME errors was rejected 1_1_11-20020529 without proper logging. Files: global/mime_state.c, 1_1_11-20020529 cleanup/cleanup_message.c. 1_1_11-20020601 1_1_11-20020601 20020531 1_1_11-20020601 1_1_11-20020601 Bugfix: the SMTP client code that prepends '.' to lines 1_1_11-20020601 starting with '.' had to be moved from its old place to 1_1_11-20020601 after the MIME output conversion. Problem found by Mark 1_1_11-20020601 Martinec. File: smtp/smtp_proto.c. 1_1_11-20020602 1_1_11-20020602 20020601 1_1_11-20020602 1_1_11-20020602 Bugfix: the deliver_pass() routine needed updating for the 1_1_11-20020602 extra MIME encoding attribute that was introduced 20020510. 1_1_11-20020602 Patch by Sebastian Schaffert @ wastl.net. File: 1_1_11-20020602 global/deliver_pass.c. 1_1_11-20020610 1_1_11-20020610 20020604 1_1_11-20020610 1_1_11-20020610 Workaround: Solaris non-blocking read() can fail on a socket 1_1_11-20020610 with unread data according to ioctl FIONREAD. Incredible. 1_1_11-20020610 Diagnosis by Max Pashkov. File: smtp/smtp-sink.c. 1_1_11-20020610 1_1_11-20020610 20020605 1_1_11-20020610 1_1_11-20020610 Safety: header_address_token_limit limits the amount of 1_1_11-20020610 memory and CPU that we're willing to spend while parsing 1_1_11-20020610 addresses in message headers. The limit is expressed as a 1_1_11-20020610 number of tokens. File: global/tok822_parse.c 1_1_11-20020610 1_1_11-20020610 20020608 1_1_11-20020610 1_1_11-20020610 Feature: user@domain transport map lookup, based on code 1_1_11-20020610 by Scott Cotton, from several years ago. Adding this code 1_1_11-20020610 now was much less painful than it was in the past. Files: 1_1_11-20020610 global/strip_addr.c, trivial-rewrite/transport.c. 1_1_11-20020613 1_1_11-20020613 20020613 1_1_11-20020613 1_1_11-20020613 Bugfix: postsuper -r was broken as of 20020510. The cleanup 1_1_11-20020613 daemon would discard mail with MIME type information. Moved 1_1_11-20020613 a bunch of sanity checks from the cleanup daemon to the 1_1_11-20020613 pickup daemon, so the checks are in one place. Problem 1_1_11-20020613 experienced by Pavol Luptak. Files: pickup/pickup.c, 1_1_11-20020613 cleanup/cleanup_extracted.c. 1_1_11-20020717 1_1_11-20020717 20020705 1_1_11-20020717 1_1_11-20020717 Safety: log a warning when a domain is listed in mydestination 1_1_11-20020717 and (virtual_maps or virtual_mailbox_maps). This configuration 1_1_11-20020717 error causes the Postfix SMTP server to reject recipients 1_1_11-20020717 when the local_recipient_maps feature is enabled. File: 1_1_11-20020717 smtpd/smtpd_check.c. 1_1_11-20020717 1_1_11-20020717 200207011 1_1_11-20020717 1_1_11-20020717 Portability: in the master daemon, the default now is to 1_1_11-20020717 enable the signal handler code that writes a byte into a 1_1_11-20020717 pipe, instead of the signal handler code that sets a global 1_1_11-20020717 flag and hopes that select() will somehow wake up. File: 1_1_11-20020717 master/master_sig.c. This is needed for some IRIX and 1_1_11-20020717 UnixWare versions, but it should also produce a robust 1_1_11-20020717 result on all other supported systems. 1_1_11-20020717 1_1_11-20020717 Performance: the default SMTP connection establishment 1_1_11-20020717 timeout is now 30 seconds, instead of the system default 1_1_11-20020717 which can be atrociously large. 1_1_11-20020717 1_1_11-20020717 20020712 1_1_11-20020717 1_1_11-20020717 When DNS lookup fails while delivering mail, report not 1_1_11-20020717 only the domain name but also the DNS record type. This 1_1_11-20020717 should clue in people who ask why Postfix can't find a 1_1_11-20020717 domain while nslookup can. File: dns/dns_lookup.c. 1_1_11-20020717 1_1_11-20020717 20020713 1_1_11-20020717 1_1_11-20020717 Bugfix: undo change made at 20020610 that causes the trivial 1_1_11-20020717 resolver client to loop when an address consists entirely 1_1_11-20020717 of @ and . characters. File: trivial-rewrite/resolve.c. 1_1_11-20020717 1_1_11-20020717 Cleanup: Postfix no longer strips multiple '.' at the end 1_1_11-20020717 of a domain name. One '.' is silently tolerated. Files: 1_1_11-20020717 trivial-rewrite/rewrite.c, trivial-rewrite/resolve.c, 1_1_11-20020717 global/resolve_local.c. This policy is too distributed. 1_1_11-20020717 1_1_11-20020717 20020715 1_1_11-20020717 1_1_11-20020717 Feature: @domain.tld catch-all map entries for the virtual 1_1_11-20020717 mail delivery agent. Files: global/virtual8_maps_find.c, 1_1_11-20020717 virtual/mailbox.c, smtpd/smtpd_check.c. 1_1_11-20020717 1_1_11-20020717 Feature: the virtual mail delivery agent now accepts address 1_1_11-20020717 extensions (user+foo@domain.tld), ignores them when looking 1_1_11-20020717 up users in its tables, but displays them in Delivered-To: 1_1_11-20020717 message headers. File: global/virtual8_maps_find.c. 1_1_11-20020717 1_1_11-20020717 20020716 1_1_11-20020717 1_1_11-20020717 Feature: domain names in a masquerade_domains list can now 1_1_11-20020717 be prefixed with !, in order to disable masquerading for 1_1_11-20020717 that domain name and for its subdomains. File: 1_1_11-20020717 cleanup/cleanup_masquerade.c. 1_1_11-20020717 1_1_11-20020717 20020717 1_1_11-20020717 1_1_11-20020717 Bugfix: Mac OS X niscript (Netinfo) update by Gerben Wierda. 1_1_11-20020717 File: auxiliary/MacOSX/niscript. 1_1_11-20020717 1_1_11-20020717 Feature: The SMTP server reject_unknown_whatever restrictions 1_1_11-20020717 now also attempt to look up AAAA (IPV6 address) records. 1_1_11-20020717 Jun-ichiro itojun Hagino, IIJ labs. Files: smtpd/smtpd_check.c, 1_1_11-20020717 dns/dns_lookup.c. 1_1_11-20020718 1_1_11-20020718 20020718 1_1_11-20020718 1_1_11-20020718 Bugfix: unnecessary lookups for extended addresses by the 1_1_11-20020718 virtual8_maps_find() routine. Victor Duchovni. His patch 1_1_11-20020718 did not work, nor did my own, but the present version should 1_1_11-20020718 be OK. File: global/virtual8_maps_find.c. 1_1_11-20020718 1_1_11-20020719 20020719 1_1_11-20020719 1_1_11-20020719 Workaround: log a warning when an SMTP client name->address 1_1_11-20020719 lookup results in a numeric IP address, and set the client 1_1_11-20020719 hostname to "unknown". Some gethostbyname() implementations 1_1_11-20020719 will actually accept such garbage and thereby allow sites 1_1_11-20020719 to defeat the "reject_unknown_client" restriction. Problem 1_1_11-20020719 reported by Wolfgang Rupprecht, fix based on analysis (but 1_1_11-20020719 not code) by Victor Duchovni. 1_1_11-20020719 1_1_11-20020719 Bugfix: memory leaks in the LDAP client by Victor Duchovni. 1_1_11-20020719 File: util/dict_ldap.c. 1_1_11-20020719 1_1_11-20020719 Bugfix: garbage in verbose "flush" server logging. Victor 1_1_11-20020719 Duchovni. File: flush/flush.c. 1_1_11-20020719 1_1_11-20020819 20020723 1_1_11-20020819 1_1_11-20020819 Incompatibility: smtpd_sasl_local_domain now defaults to 1_1_11-20020819 the null string. File: smtpd/smtpd.c, smtpd/smtpd_sasl_glue.c. 1_1_11-20020819 1_1_11-20020819 20020726 1_1_11-20020819 1_1_11-20020819 Documentation: added GDB debugging instructions for sites 1_1_11-20020819 that do not have X installed on the Postfix machine. Henrik 1_1_11-20020819 Larsson, spambox.dk. 1_1_11-20020819 1_1_11-20020819 20020729 1_1_11-20020819 1_1_11-20020819 Weird: installed RedHat 3.03 inside VMware, and no change 1_1_11-20020819 was needed to build Postfix, except to recognize the Linux 1_1_11-20020819 version. 1_1_11-20020819 1_1_11-20020819 Bugfix: some mailers will announce ESMTP features in their 1_1_11-20020819 HELO (not EHLO) response. Postfix did not ignore them. 1_1_11-20020819 File: smtp/smtp_proto.c. 1_1_11-20020819 1_1_11-20020819 20020731 1_1_11-20020819 1_1_11-20020819 Cleanup: permit_naked_ip_address is unsafe (especially when 1_1_11-20020819 used with smtpd_recipient_restrictions) and will go away. 1_1_11-20020819 Postfix now logs a warning. File: smtpd/smtpd_check.c. 1_1_11-20020819 1_1_11-20020819 20020801 1_1_11-20020819 1_1_11-20020819 Cleanup: the warning message for matched header/body 1_1_11-20020819 content was misleading. File: cleanup/cleanup_message.c. 1_1_11-20020819 1_1_11-20020819 Safety: moved the "postsuper -r ALL" operation after the 1_1_11-20020819 "postsuper -s" check that makes queue file names match 1_1_11-20020819 inode numbers. This avoids loss of mail in the unlikely 1_1_11-20020819 case that someone runs "postsuper -sr ALL" on a queue that 1_1_11-20020819 was copied from another place. 1_1_11-20020819 1_1_11-20020819 Feature: "postsuper -h" to put mail "on hold" and "postsuper 1_1_11-20020819 -H" to release mail that was placed "on hold". This involves 1_1_11-20020819 a new queue, which is appropriately named "hold". Files: 1_1_11-20020819 postsuper/postsuper.c, showq/showq.c. 1_1_11-20020819 1_1_11-20020819 20020803 1_1_11-20020819 1_1_11-20020819 Feature: when a Delivered-To: mail delivery loop is detected, 1_1_11-20020819 send the bounce to the mailing list owner. This required 1_1_11-20020819 changes to the local delivery agent, a new bounce client 1_1_11-20020819 stub, and a new bounce server stub and support routines 1_1_11-20020819 for one recipient bouncing. Files: local/recipient.c, 1_1_11-20020819 global/bounce_log.c, global/bounce.c, bounce/bounce.c, 1_1_11-20020819 bounce/bounce_notify_util.c, bounce/bounce_one_service.c. 1_1_11-20020819 1_1_11-20020819 20020809 1_1_11-20020819 1_1_11-20020819 Bugfix: the 20020531 bugfix could prepend '.' to lines when 1_1_11-20020819 it shouldn't (but only when converting 8-bit mail to 7-bit). 1_1_11-20020819 Problem experienced by Ralf Hildebrandt. File: 1_1_11-20020819 smtp/smtp_proto.c. 1_1_11-20020819 1_1_11-20020819 Bugfix: smtpd_sender_login_maps did not do the @domain etc. 1_1_11-20020819 wild-card lookups that were promised. Problem experienced 1_1_11-20020819 by Sven Michels. File: smtpd/smtpd_check.c. 1_1_11-20020819 1_1_11-20020819 20020810 1_1_11-20020819 1_1_11-20020819 Feature: new smtp-sink command-line options to specify the 1_1_11-20020819 SMTP hostname, to disable ESMTP protocol support, to 1_1_11-20020819 disable 8BITMIME support, and to syslog selected commands. 1_1_11-20020819 File: smtpstone/smtp-sink.c. 1_1_11-20020819 1_1_11-20020819 20020814 1_1_11-20020819 1_1_11-20020819 Feature: the queue manager now warns when mail for some 1_1_11-20020819 destination is piling up in the active queue, and suggests 1_1_11-20020819 a variety of remedies. The qmgr_clog_warn_time parameter 1_1_11-20020819 controls the time between warnings, mainly so that I could 1_1_11-20020819 test the code. To disable these warnings, specify 1_1_11-20020819 "qmgr_clog_warn_time = 0". Files: *qmgr/qmgr_entry.c. 1_1_11-20020819 1_1_11-20020819 20020815 1_1_11-20020819 1_1_11-20020819 Paranoia: truncate the DNS response length result value in 1_1_11-20020819 case it is larger than the result buffer length (the resolver 1_1_11-20020819 documentation is vague about this). File: dns/dns_lookup.c. 1_1_11-20020819 1_1_11-20020819 20020816 1_1_11-20020819 1_1_11-20020819 Cleanup: "postqueue -f" now also triggers delivery of mail 1_1_11-20020819 in the maildrop directory. This is needed when the master 1_1_11-20020819 does not frequently wake up the pickup service. Files: 1_1_11-20020819 global/mail_flush.c, postqueue/postqueue.c. 1_1_11-20020819 1_1_11-20020819 20020818 1_1_11-20020819 1_1_11-20020819 Cleanup: the qmgr_site_hog_factor feature is gone (defer 1_1_11-20020819 mail if a site uses up too much space in the active queue). 1_1_11-20020819 Instead, the qmgr_clog_warn_time feature provides better 1_1_11-20020819 solutions. File: qmgr/qmgr_message.c. 1_1_11-20020819 1_1_11-20020819 20020819 1_1_11-20020819 1_1_11-20020819 Feature: new header/body_checks HOLD pattern that causes 1_1_11-20020819 mail to be placed on the "hold" queue for manual inspection. 1_1_11-20020819 Files: global/hold_message.[hc], cleanup/cleanup_message.c. 1_1_11-20020819 1_1_11-20020822 20020820 1_1_11-20020822 1_1_11-20020822 Bugfix: yesterday's HOLD pattern code did not update the 1_1_11-20020822 cleanup server's idea of the queue file name for error 1_1_11-20020822 recovery and for error reporting purposes, so that incomplete 1_1_11-20020822 or content rejected mail would not be deleted from the 1_1_11-20020822 queue, and so that the bouncer would not find the queue 1_1_11-20020822 file. 1_1_11-20020822 1_1_11-20020822 Bugfix: the #ifdef that detects too old LDAP libraries was 1_1_11-20020822 in the wrong place. Victor Duchovni. File: util/dict_ldap.c. 1_1_11-20020822 1_1_11-20020822 Feature: new header/body_checks DISCARD pattern that causes 1_1_11-20020822 mail to be silently discarded. Files: global/cleanup_user.h, 1_1_11-20020822 cleanup/cleanup_message.c, cleanup/cleanup_api.c. 1_1_11-20020822 1_1_11-20020822 Bugfix: the local delivery agent's mailbox duplicate delivery 1_1_11-20020822 eliminator was not updated in the days that address extensions 1_1_11-20020822 were added to Postfix. The other local duplicate eliminators 1_1_11-20020822 probably need revision as well. File: local/mailbox.c. 1_1_11-20020822 1_1_11-20020822 20020821 1_1_11-20020822 1_1_11-20020822 Feature: HOLD and DISCARD actions in SMTPD access tables. 1_1_11-20020822 These requests are propagated to the cleanup daemon. 1_1_11-20020822 Files: cleanup/cleanup_envelope.c smtpd/smtpd_check.c. 1_1_11-20020822 1_1_11-20020822 Cleanup: eliminate unnecessary references to the obsolete 1_1_11-20020822 program_directory configuration parameter (but keep the 1_1_11-20020822 parameter so as to not break existing installations). 1_1_11-20020822 Matthias Andree, many little changes in documentation. 1_1_11-20020822 1_1_11-20020822 20020822 1_1_11-20020822 1_1_11-20020822 Bit Rot: OpenLDAP incompatible change with URL parsing. 1_1_11-20020822 Patches by Will Day, Georgia Tech, and Carsten Hoeger, 1_1_11-20020822 SUSE. File: util/dict_ldap.c. 1_1_11-20020822 1_1_11-20020917 20020823 1_1_11-20020917 1_1_11-20020917 Bugfix: added a missing memset() call to wipe the lookup 1_1_11-20020917 key in dict_db_delete(). This is needed by some Berkeley 1_1_11-20020917 DB implementations. Patch by Katsu Yamamoto, Fujitsu. 1_1_11-20020917 1_1_11-20020917 Bugfix: when permit_mx_backup is unable to make a decision 1_1_11-20020917 due to DNS problems, set the "defer if reject" flag so that 1_1_11-20020917 other restrictions will not cause mail to be rejected. 1_1_11-20020917 File: smtpd/smtpd_check.c. 1_1_11-20020917 1_1_11-20020917 Feature: instead of giving up immediately after DNS failure, 1_1_11-20020917 turn on the "defer_if_permit" flag when reject_unknown_hostname, 1_1_11-20020917 reject_unknown_sender_domain or reject_unknown_recipient_domain 1_1_11-20020917 are unable to make a decision, and see if any subsequent 1_1_11-20020917 restrictions would still cause the mail to be rejected. 1_1_11-20020917 File: smtpd/smtpd_check.c. 1_1_11-20020917 1_1_11-20020917 Feature: "FILTER transport:nexthop" is now also available 1_1_11-20020917 in SMTPD access tables. 1_1_11-20020917 1_1_11-20020917 20020826 1_1_11-20020917 1_1_11-20020917 Workaround: HP-UX 11 accept() fails with ENOBUFS when the 1_1_11-20020917 client disconnects early. File: sane_accept.c. 1_1_11-20020917 1_1_11-20020917 20020901 1_1_11-20020917 1_1_11-20020917 Cleanup: postfix-install no longer installs all the manual 1_1_11-20020917 pages under $POSTFIXSOURCE/man, so we can generate manual 1_1_11-20020917 pages for smtp-sink etc. File: man/Makefile.in. 1_1_11-20020917 1_1_11-20020917 20020903 1_1_11-20020917 1_1_11-20020917 Bugfix: the rmail script should have been updated when 1_1_11-20020917 Postfix sendmail was changed to recognize `.' as the end 1_1_11-20020917 of input. Problem fix by Christian Kratzer, cksoft.de. 1_1_11-20020917 File: auxiliary/rmail/rmail. 1_1_11-20020917 1_1_11-20020917 Feature: specify "maximal_queue_lifetime = 0" for mail that 1_1_11-20020917 should be returned immediately after the first unsuccessful 1_1_11-20020917 delivery attempt. Files: qmgr/qmgr.c, nqmgr/nqmgr.c. 1_1_11-20020917 1_1_11-20020917 20020904 1_1_11-20020917 1_1_11-20020917 Bugfix: qmail compatibility: qmqpd should support any 1_1_11-20020917 character at the end of the VERP prefix in prefix@host-@[]. 1_1_11-20020917 Based on a patch by LaMont Jones, HP. 1_1_11-20020917 1_1_11-20020917 20020905 1_1_11-20020917 1_1_11-20020917 Feature: "smtpd_data_restrictions = reject_unauth_pipelining" 1_1_11-20020917 blocks mail from SMTP clients that send message content 1_1_11-20020917 before Postfix has replied to the DATA command. File: 1_1_11-20020917 smtpd/smtpd.c, smtpd/smtpd_check.c. 1_1_11-20020917 1_1_11-20020917 Bugfix: the LDAP client dumped core in verbose mode. 1_1_11-20020917 Reported by Will Day and others. File: util/dict_ldap.c. 1_1_11-20020917 1_1_11-20020917 20020906 1_1_11-20020917 1_1_11-20020917 Cleanup: dict_regexp module speedups by avoiding unnecessary 1_1_11-20020917 substring overhead while matching strings. Based on a 1_1_11-20020917 suggestion by Liviu Daia. This involved major rewriting of 1_1_11-20020917 the regexp map code. File: util/dict_regexp.c. 1_1_11-20020917 1_1_11-20020917 20020907 1_1_11-20020917 1_1_11-20020917 Feature: IF..ENDIF support based on code by Bert Driehuis. 1_1_11-20020917 This involved a further rewrite of the regexp map code. 1_1_11-20020917 File: util/dict_regexp.c. 1_1_11-20020917 1_1_11-20020917 1_1_11-20020917 20020910 1_1_11-20020917 1_1_11-20020917 Bugfix: the SMTP client produced suprious warnings about 1_1_11-20020917 trouble with fallback_relay hosts. File: smtp/smtp_connect.c. 1_1_11-20020917 1_1_11-20020917 Robustness: don't wait with detecting broken SMTP connections 1_1_11-20020917 until reading input. Leandro Santi. File: smtpd/smtpd_chat.c. 1_1_11-20020917 1_1_11-20020917 20020911 1_1_11-20020917 1_1_11-20020917 Workaround: IRIX 6 can't do ioctl FIONREAD on pipes. This 1_1_11-20020917 breaks the in_flow_delay feature. File: util/sys_defs.h. 1_1_11-20020917 1_1_11-20020917 20020912 1_1_11-20020917 1_1_11-20020917 Bugfix: canonical/virtual mapping core dump with a null 1_1_11-20020917 right-hand side address. Report by Jussi Silvennoinen. 1_1_11-20020917 File: global/mail-addr_crunch.c. 1_1_11-20020917 1_1_11-20020917 Feature: IF..ENDIF support based on code by Bert Driehuis. 1_1_11-20020917 This involved a rewrite of the pcre map code similar to 1_1_11-20020917 the regexp map code. File: util/dict_pcre.c. 1_1_11-20020917 1_1_11-20020917 20020917 1_1_11-20020917 1_1_11-20020917 Feature: on Linux, support for PCRE lookup tables is now 1_1_11-20020917 compiled in if the PCRE library code is found under 1_1_11-20020917 /usr/include and /usr/lib. File: makedefs. 1_1_11-20020918 1_1_11-20020918 20020918 1_1_11-20020918 1_1_11-20020918 Documentation: postsuper(1) did not document the -c option. 1_1_11-20020918 1_1_11-20020918 Bugfix: possible longjump() before setjmp(). File: 1_1_11-20020918 smtpd/smtpd.c. 1_1_11-20020918 1_1_11-20020918 Bugfix: pickup should not preserve INSPECT or FILTER records 1_1_11-20020918 from "postsuper -r". File: pickup/pickup.c. 1_1_11-20020924 1_1_11-20020924 20020919 1_1_11-20020924 1_1_11-20020924 Feature: "reject_rbl " for client address blacklisting 1_1_11-20020924 by LaMont Jones, including $name expansion for per-domain 1_1_11-20020924 customized response messages. The obsolete reject_maps_rbl 1_1_11-20020924 is now a wrapper that uses the new code. 1_1_11-20020924 1_1_11-20020924 20020921 1_1_11-20020924 1_1_11-20020924 Internal: added caching and factored out common code that 1_1_11-20020924 will be used for both reject_rbl and for the upcoming 1_1_11-20020924 reject_rhsbl restriction. 1_1_11-20020924 1_1_11-20020924 20020922 1_1_11-20020924 1_1_11-20020924 Feature: "reject_rhsbl " for sender domain 1_1_11-20020924 blacklisting. Provides the same per-domain customized 1_1_11-20020924 response message mechanisms with $name expansion as 1_1_11-20020924 reject_rbl. 1_1_11-20020924 1_1_11-20020924 Safety: the smtpd_expansion_filter parameter controls what 1_1_11-20020924 characters are allowed in the expansion of $name macros in 1_1_11-20020924 template RBL responses. 1_1_11-20020924 1_1_11-20020924 Cleanup. In order to make sensible warnings possible when 1_1_11-20020924 expanding a non-existent $name in RBL reply templates, 1_1_11-20020924 mac_expand() had to be changed so that an empty string 1_1_11-20020924 result (i.e. the name does exist) will no longer cause 1_1_11-20020924 ${name?text} to succeed. File: util/mac_expand.c. 1_1_11-20020924 1_1_11-20020924 20020923 1_1_11-20020924 1_1_11-20020924 Cleanup. Renamed the RBL features according to a scheme 1_1_11-20020924 that was suggested by Liviu Daia in October 2001. The 1_1_11-20020924 names are reject_rbl_client and reject_rhsbl_sender, 1_1_11-20020924 respectively. Added domain name based reject_rhsbl_client 1_1_11-20020924 and reject_rhsbl_recipient restrictions for completeness. 1_1_11-20020924 The reject_rbl restriction name is still recognized for 1_1_11-20020924 compatibility with systems maintained by LaMont Jones. 1_1_11-20020924 1_1_11-20020928 20020924 1_1_11-20020928 1_1_11-20020928 Bugfix: reject_rhsbl_ was broken when was 1_1_11-20020928 unavailable, causing the restrictions parser to get out if 1_1_11-20020928 sync. Spotted by Ralf Hildebrandt. File: smtpd/smtpd_check.c. 1_1_11-20020928 1_1_11-20020928 20020928 1_1_11-20020928 1_1_11-20020928 Bugfix: missing %s in the 20020923 RBL code. This was not 1_1_11-20020928 exploitable because Postfix implements only a safe subset 1_1_11-20020928 of all printf format operators and because memory for the 1_1_11-20020928 result is dynamically allocated. Victor Duchovni. File: 1_1_11-20020928 smtpd/smtpd_check.c. 1_1_11-20020928 1_1_11-20021013 20020929 1_1_11-20021013 1_1_11-20021013 Updated MacOSX support scripts from Gerben Wierda. Files: 1_1_11-20021013 auxiliary/MacOSX/*. 1_1_11-20021013 1_1_11-20021013 20021009 1_1_11-20021013 1_1_11-20021013 Bugfix: SIZE errors should be reported at MAIL FROM time, 1_1_11-20021013 and should not be postponed (with smtpd_delay_reject = yes) 1_1_11-20021013 until RCPT TO time. Reported by Jeroen Scheerder, Utrecht 1_1_11-20021013 University. Files: smtpd/smtpd.c smtpd/smtpd_check.c. 1_1_11-20021013 1_1_11-20021013 20021013 1_1_11-20021013 1_1_11-20021013 When Postfix development started, Linux mail delivery 1_1_11-20021013 software such as procmail did not use kernel locks, and 1_1_11-20021013 Postfix picked one that seemed plausible, namely, flock(). 1_1_11-20021013 In the mean time, Linux mail delivery software seems to 1_1_11-20021013 have standardized on fcntl() locks. File: util/sys_defs.h. 1_1_11-20021013 1_1_11-20021013 Feature: body_checks_size_limit parameter to specify how much 1_1_11-20021013 of a message body segment (or attachment, if you prefer to 1_1_11-20021013 use that term) is subjected to body_checks inspection. 1_1_11-20021013 Default limit: 50 kbytes. Files: global/mime_state.c, 1_1_11-20021013 cleanup/cleanup_message.c. 1_1_11-20021013 1_1_11-20021015 20021015 1_1_11-20021015 1_1_11-20021015 Bugfix: the code for missing postmaster/mailer-daemon 1_1_11-20021015 aliases had to be moved after the code that implements the 1_1_11-20021015 luser_relay feature. Files: local/alias.c, local/unknown.c. 1_1_11-20021015 1_1_11-20021015 Weird? The LMTP client lowercased the MAIL FROM and RCPT 1_1_11-20021015 TO addresses. Some remnant of code that someone put in 1_1_11-20021015 there long ago. File: lmtp/lmtp_proto.c. 1_1_11-20021015 1_1_11-20021024 20021024 1_1_11-20021024 1_1_11-20021024 Feature: proxy_interfaces parameter. Specify your NAT or 1_1_11-20021024 other proxy addresses here to avoid mail delivery loops. 1_1_11-20021024 Files: global/mail_params.[hc] global/own_inet_addr.[hc] 1_1_11-20021024 global/resolve_local.c smtp/smtp_addr.c smtpd/smtpd_check.c. 1_1_11-20021024 1_1_11-20021028 Paranoia: defend against a very unlikely false alarm in 1_1_11-20021028 safe_open(). 1_1_11-20021028 1_1_11-20021028 20021025 1_1_11-20021028 1_1_11-20021028 Feature: X-Original-To: message headers with the raw original 1_1_11-20021028 envelope recipient. 1_1_11-20021028 1_1_11-20021028 Logging: status=sent/deferred/bounced/ logging now includes 1_1_11-20021028 the original recipient address if it differs from the final 1_1_11-20021028 address. 1_1_11-20021028 1_1_11-20021028 20021026 1_1_11-20021028 1_1_11-20021028 Logging: SMTP UCE reject/warn/hold/discard logging now 1_1_11-20021028 includes queue ID. This will break some logfile analyzers. 1_1_11-20021028 1_1_11-20021028 Logging: SMTP UCE reject/warn/hold/discard logging now 1_1_11-20021028 includes the protocol name and, if available, the hostname 1_1_11-20021028 given in the SMTP HELO or EHLO command. 1_1_11-20021028 1_1_11-20021028 Logging: header/body_checks reject/warn/hold/discard logging 1_1_11-20021028 now includes the protocol name and, if available, the 1_1_11-20021028 hostname given in the SMTP HELO or EHLO command. 1_1_11-20021028 1_1_11-20021028 20021028 1_1_11-20021028 1_1_11-20021028 Bugfix: don't reset state after rejected EHLO. Reset state 1_1_11-20021028 after HELO. Reported by Karthikeyan Bhargavan, upenn.edu. 1_1_11-20021028 Files: smtpd/smtpd.c. 1_1_11-20021028 1_1_11-20021029 20021029 1_1_11-20021029 1_1_11-20021029 Bugfix: local(8) did not prepend an X-Original-To: message 1_1_11-20021029 header while delivering to command, and local(8) did not 1_1_11-20021029 document the X-Original-To: message header. 1_1_11-20021029 1_1_11-20021029 Workaround: DJBDNS produces a bogus A record when given a 1_1_11-20021029 numerical hostname. File: dns/dns_lookup.c. 1_1_11-20021031 1_1_11-20021031 20021030 1_1_11-20021031 1_1_11-20021031 Portability: support for Berkeley DB version 4.0 but not 1_1_11-20021031 for Berkeley DB version 4.1 (yes, the API is different). 1_1_11-20021031 Postfix is now going to be paranoid about the minor version 1_1_11-20021031 number, too. File: util/dict_db.c. 1_1_11-20021031 1_1_11-20021031 Documentation: updated LMTP_README file by Amos Gouaux. 1_1_11-20021031 1_1_11-20021031 20021031 1_1_11-20021031 1_1_11-20021031 Bugfix: (bug introduced 20021026) log NOQUEUE when rejecting 1_1_11-20021031 ETRN, instead of trying to log a non-existent queue ID. 1_1_11-20021031 Victor Duchovni, Morgan Stanley. File: smtpd/smtpd_check.c. 1_1_11-20021031 1_1_11-20021031 Cleanup: allow optional text after commands in SMTPD access 1_1_11-20021031 maps. Based on initial effort by Victor Duchovni, Morgan 1_1_11-20021031 Stanley. File: smtpd/smtpd_check.c. 1_1_11-20021031 1_1_11-20021031 Portability: support for Berkeley DB version 4.1. This 1_1_11-20021031 version refuses to open zero-length files. This complicates 1_1_11-20021031 lock management and requires extra code to remove broken 1_1_11-20021031 files. Files: util/dict_db.c, global/mkmap*.[hc]. 1_1_11-20021101 1_1_11-20021101 20021101 1_1_11-20021101 1_1_11-20021101 Bugfix: don't complain about out-of-order original recipient 1_1_11-20021101 records for finished recipients. Files: *qmgr/qmgr_message.c, 1_1_11-20021101 cleanup/cleanup_envelope.c, cleanup/cleanup_extracted.c. 1_1_11-20021101 1_1_11-20021104 Cleanup: further simplified the mkmap wrapper (used by 1_1_11-20021104 postmap and postalias only) to remove some hurdles for 1_1_11-20021104 Michael Tokarev's CDB support. Files: global/mkmap*.[hc]. 1_1_11-20021104 1_1_11-20021106 20021105 1_1_11-20021106 1_1_11-20021106 Postalias now produces YP_LAST_MODIFIED and YP_MASTER_NAME 1_1_11-20021106 records only when NIS support is compiled in. File: 1_1_11-20021106 postalias.c. 1_1_11-20021106 1_1_11-20021106 20021106 1_1_11-20021106 1_1_11-20021106 Postalias now puts $myhostname in the YP_MASTER_NAME record, 1_1_11-20021106 instead of the possibly bogus gethostname() result. File: 1_1_11-20021106 postalias.c. 1_1_11-20021106 1_1_11-20021106 The PCRE map code did not reject non-numeric replacement 1_1_11-20021106 indices in replacement text, and silently treated $text as 1_1_11-20021106 $0. Found by Michael Tokarev. File: dict_pcre.c. 1_1_11-20021106 1_1_11-20021109 20021108 1_1_11-20021109 1_1_11-20021109 Cleanup: the behavior of the SMTP server's defer_if_permit 1_1_11-20021109 flag was changed, in order to maximize the opportunity to 1_1_11-20021109 permanently reject mail without opening opportunities for 1_1_11-20021109 losing legitimate mail. This was done in cooperation with 1_1_11-20021109 Victor Duchovni, Morgan Stanley. File: smtpd/smtpd_check.c. 1_1_11-20021109 1_1_11-20021109 The defer_if_permit flag is still set when an UCE reject 1_1_11-20021109 restriction fails due to a temporary (e.g., DNS) problem, 1_1_11-20021109 to prevent unwanted mail from slipping through. However, 1_1_11-20021109 the flag is no longer tested at the end of client, helo or 1_1_11-20021109 sender restrictions. Instead, the flag is now tested at 1_1_11-20021109 the end of the ETRN and recipient restrictions only. 1_1_11-20021109 1_1_11-20021109 The behavior of the warn_if_reject restriction has changed. 1_1_11-20021109 It no longer activates any already made defer_if_permit or 1_1_11-20021109 defer_if_reject decisions (the defer_if_reject flag is set 1_1_11-20021109 when some UCE permit restriction fails due to a temporary 1_1_11-20021109 (DNS) problem, to avoid loss of legitimate mail). 1_1_11-20021109 1_1_11-20021109 Bugfix: instead of setting the defer_if_permit flag, a 1_1_11-20021109 failing reject restriction after warn_if_reject now merely 1_1_11-20021109 logs that it would have caused mail to be deferred. 1_1_11-20021109 1_1_11-20021109 A failing permit restriction after warn_if_reject still 1_1_11-20021109 raises the defer_if_reject flag, to avoid loss of legitimate 1_1_11-20021109 mail. 1_1_11-20021109 1_1_11-20021109 20021109 1_1_11-20021109 1_1_11-20021109 Bugfix: a misguided change to the .forward macro expansion 1_1_11-20021109 filter broke .forward file lookup. 1_1_11-20021109 1_1_11-20021114 Bugfix: missing defer_if_permit test in smtpd_data_restrictions. 1_1_11-20021114 Victor Duchovni. File: smtpd/smtpd_check.c. 1_1_11-20021114 1_1_11-20021114 20021112 1_1_11-20021114 1_1_11-20021114 Robustness: increase the mime_nesting_limit from 20 to 100, 1_1_11-20021114 so that bounces can't loop. Each bounces increases the MIME 1_1_11-20021114 nesting level by one. Ralf Hildebrandt and Victor Duchovni. 1_1_11-20021114 1_1_11-20021114 20021113 1_1_11-20021114 1_1_11-20021114 Robustness: reinstated SMTP client command flushing to 1_1_11-20021114 avoid pipeline stalls. File: smtp/smtp_chat.c. 1_1_11-20021114 1_1_11-20021114 20021114 1_1_11-20021114 1_1_11-20021114 Robustness: distinguish between timeout and "lost connection" 1_1_11-20021114 when the SMTP server is unable to send a reply to the remote 1_1_11-20021114 client. File: smtpd/smtpd_chat.c. 1_1_11-20021114 1_1_11-20021115 20021115 1_1_11-20021115 1_1_11-20021115 Bugfix: initialization error with "*" transport table 1_1_11-20021115 lookup, reported by LaMont Jones. The transport map lookup 1_1_11-20021115 code had grown into a monster and needed to be replaced. 1_1_11-20021115 trivial-rewrite/transport.c. 1_1_11-20021115 1_1_12-20021124 20021121 1_1_12-20021124 1_1_12-20021124 Bugfix: garbage in "user@garbage"@domain address forms may 1_1_12-20021124 cause the SMTP or LMTP client to terminate with a fatal 1_1_12-20021124 error exit because garbage/tcp is not an existing service. 1_1_12-20021124 This cannot be abused to cause the SMTP or LMTP client to 1_1_12-20021124 send data into unauthorized ports. Files: *qmgr/qmgr_message.c, 1_1_12-20021124 trivial-rewrite/resolve.c. 1_1_12-20021124 1_1_12-20021130 20021128 1_1_12-20021130 1_1_12-20021130 Feature: hashed hold queue support, with hashing turned on 1_1_12-20021130 by default. Omission spotted by Victor Duchovni, Morgan 1_1_12-20021130 Stanley. Files: global/hold_message.c, global/mail_params.h. 1_1_12-20021130 1_1_12-20021130 Bugfix: the LMTP client lost the port(service) information 1_1_12-20021130 when parsing host:port information. Victor Duchovni, Morgan 1_1_12-20021130 Stanley. Fix is to have a new host_port(3) module that does 1_1_12-20021130 the parsing for the SMTP and LMTP clients. 1_1_12-20021130 1_1_12-20021130 Cleanup: host_port() routine that parses host/port information 1_1_12-20021130 more consistently than the existing code in the LMTP and 1_1_12-20021130 SMTP clients. Files: smtp/smtp_connect.c, lmtp/lmtp_connect.c, 1_1_12-20021130 util/host_port.[hc]. 1_1_12-20021130 1_1_12-20021202 20021201 1_1_12-20021202 1_1_12-20021202 Compatibility: ignore the new Sendmail -A option. File: 1_1_12-20021202 sendmail/sendmail.c. 1_1_12-20021202 1_1_12-20021202 Workaround: sendmail -v now produces no output. You need 1_1_12-20021202 to specify -v -v instead. This is to avoid problems when 1_1_12-20021202 people request verbose mail delivery in their mail.rc file. 1_1_12-20021202 File: sendmail/sendmail.c. 1_1_12-20021202 1_1_12-20021203 20021202 1_1_12-20021203 1_1_12-20021203 Cleanup: hash_queue_depth now defaults to 1 level of 1_1_12-20021203 subdirectories. This makes "mailq" faster on most systems, 1_1_12-20021203 but will result in poorer worst-case performance when lots 1_1_12-20021203 of mail is queued. 1_1_12-20021203 1_1_12-20021203 The check_relay_domains restriction is going away. The SMTP 1_1_12-20021203 server logs a warning and suggests using reject_unauth_destination 1_1_12-20021203 instead. 1_1_12-20021203 1_1_12-20021203 Cleanup: the local(8) and virtual(8) delivery agents did 1_1_12-20021203 not prepend X-Original-To: addresses to maildir files. 1_1_12-20021203 Omission spotted by Matthias Andree. 1_1_12-20021203 1_1_12-20021203 Bugfix: too many levels of dereferencing while testing for 1_1_12-20021203 missing reject_rbl_mumble domain names. Patrik Rak. File: 1_1_12-20021203 smtpd/smtpd_check.c. 1_1_12-20021203 1_1_12-20021209 20021203 1_1_12-20021209 1_1_12-20021209 Bugfix: the FILTER access table action included the FILTER 1_1_12-20021209 command in the filter request, where only the transport+destination 1_1_12-20021209 were expected. Noel Jones. File smtpd/smtpd_check.c. 1_1_12-20021209 1_1_12-20021209 Cleanup: virtual_maps is now called virtual_alias_maps, in 1_1_12-20021209 order to better distinguish it from virtual_mailbox_maps. 1_1_12-20021209 The default value is $virtual_maps for backwards compatibility. 1_1_12-20021209 1_1_12-20021209 New parameters virtual_alias_domains and virtual_mailbox_domains 1_1_12-20021209 for the "domain.tld whatever" lookups. These use the same 1_1_12-20021209 syntax as the mydestination parameter. Default settings 1_1_12-20021209 are backwards compatible with Postfix 1.1. 1_1_12-20021209 1_1_12-20021209 Concept: just like $mydestination+$inet_interfaces control 1_1_12-20021209 what routes to $local_transport, $virtual_mailbox_domains 1_1_12-20021209 now controls what routes to $virtual_transport (default 1_1_12-20021209 transport: virtual), and $relay_domains now controls what 1_1_12-20021209 routes to $relay_transport (default transport: relay, a 1_1_12-20021209 clone of the smtp transport). Everything else routes to 1_1_12-20021209 $default_transport as before. This eliminates the need 1_1_12-20021209 for transport map entries for every virtual(8) domain, and 1_1_12-20021209 avoids performance problems with inbound relay mail. This 1_1_12-20021209 was improvement was suggested by Victor Duchovni. File: 1_1_12-20021209 trivial-rewrite/resolve.c. 1_1_12-20021209 1_1_12-20021209 20021206 1_1_12-20021209 1_1_12-20021209 Cleanup: do allow regexps in aliases, virtual mailbox maps 1_1_12-20021209 but do not allow regular expression substitutions. Files: 1_1_12-20021209 util/dict.h, util/dict_regexp.c, util/dict_pcre.c. 1_1_12-20021209 1_1_12-20021209 20021207 1_1_12-20021209 1_1_12-20021209 Cleanup: deleted the description of sendmail-style virtual 1_1_12-20021209 domains from the virtual(5) manual page. This part of 1_1_12-20021209 Postfix was too confusing. 1_1_12-20021209 1_1_12-20021209 Performance: RFC 2821 blesses the use of CNAME domain names 1_1_12-20021209 in MAIL FROM and RCPT TO. Not having to expand CNAME domain 1_1_12-20021209 names speeds things up a bit. File: smtp/smtp_proto.c. 1_1_12-20021209 1_1_12-20021209 Workaround: exclude error mailer destinations from transport 1_1_12-20021209 mapping lookups :-(. File: trivial-rewrite/resolve.c. 1_1_12-20021209 1_1_12-20021209 Cleanup: relocated_maps lookups are now moved to the 1_1_12-20021209 trivial-rewrite server. As of now, the queue manager no 1_1_12-20021209 longer does any map lookups, so it won't restart when maps 1_1_12-20021209 change. Files: *qmgr/qmgr_message.c, trivial-rewrite/resolve.c. 1_1_12-20021209 1_1_12-20021209 Robustness: because the trivial-rewrite server now does 1_1_12-20021209 many more table lookups, some of which are often LDAP or 1_1_12-20021209 SQL based, trivial-rewrite clients must be be prepared for 1_1_12-20021209 the case that the resolver reports a failure while processing 1_1_12-20021209 a request (when it was unable to access a lookup table). 1_1_12-20021209 Files: trivial-rewrite/resolve.c, local/resolve.c, 1_1_12-20021209 smtpd/smtpd_check.c. 1_1_12-20021209 1_1_12-20021209 Robustness: moving possible LDAP or SQL table lookups into 1_1_12-20021209 the trivial-rewrite server also required that trivial-rewrite 1_1_12-20021209 be running as multiple processes to reduce lookup latencies. 1_1_12-20021209 Files: master/multi-server.c. 1_1_12-20021209 1_1_12-20021209 Workaround: don't discard all the DNS lookup results when 1_1_12-20021209 only one of the results has a malformed name or address. 1_1_12-20021209 File: dns/dns_lookup.c. 1_1_12-20021209 1_1_12-20021209 20021208 1_1_12-20021209 1_1_12-20021209 Cleanup: with the preliminary address domain classification 1_1_12-20021209 concept as implemented by the trivial-rewrite address 1_1_12-20021209 resolver, a lot of table lookups could be eliminated from 1_1_12-20021209 the SMTP server. Files: smtpd/smtpd_check.c. 1_1_12-20021209 1_1_12-20021209 Feature: new relay_recipient_maps parameter, for optional 1_1_12-20021209 maps with all the recipients in the domains that match 1_1_12-20021209 $relay_domains (so you can reject mail for unknown relay 1_1_12-20021209 recipients). This is for consistency with virtual_xx_maps 1_1_12-20021209 and virtual_xx_domains, and with local_recipient_maps and 1_1_12-20021209 the local delivery agent. File: smtpd/smtpd_check.c. 1_1_12-20021209 1_1_12-20021209 Cleanup: removed support for obsolete #number domain forms. 1_1_12-20021209 File: smtpd/smtpd_check.c. 1_1_12-20021209 1_1_12-20021209 20021209 1_1_12-20021209 1_1_12-20021209 The Postfix installation procedure no longer sets the 1_1_12-20021209 "chattr +S" bit on Linux queue directories. Wietse has 1_1_12-20021209 gotten too annoyed with naive reviewers who complain about 1_1_12-20021209 performance without having a clue of what they are comparing. 1_1_12-20021209 1_1_12-20021209 "Security": local_recipient_maps is now turned on by default, 1_1_12-20021209 to reject mail for non-existent users at the SMTP port. 1_1_12-20021209 See conf/main.cf for instructions, section REJECTING UNKNOWN 1_1_12-20021209 LOCAL USERS. 1_1_12-20021209 1_1_12-20021209 Safety: detection of missing or inaccessible passwd file 1_1_12-20021209 database, to prevent massive complaints from people who 1_1_12-20021209 suddenly lose all their mail because local_recipient_maps 1_1_12-20021209 is now turned on by default. 1_1_12-20021212 1_1_12-20021212 20021211 1_1_12-20021212 1_1_12-20021212 Performance: doubled the default process limit (50->100) 1_1_12-20021212 and default queue manager active queue message/recipient 1_1_12-20021212 limits (10k->20k). File: global/mail_params.h. 1_1_12-20021212 1_1_12-20021212 20021212 1_1_12-20021212 1_1_12-20021212 Cleanup: allow transport map lookups to override error 1_1_12-20021212 mailer results (to avoid breaking existing installations), 1_1_12-20021212 and do transport map lookups before relocated map lookups. 1_1_12-20021212 Files: trivial-rewrite/resolve.c, trivial-rewrite/transport.c. 1_1_12-20021212 1_1_12-20021212 Admin friendliness: the SMTP server now reports "User 1_1_12-20021212 unknown in {local recipient | virtual alias | virtual 1_1_12-20021212 mailbox | relay recipient} table". This will make trouble 1_1_12-20021212 shooting a little easier. Files: smtpd/smtpd_check.c, 1_1_12-20021212 trivial-rewrite/resolve.c. 1_1_12-20021213 1_1_12-20021213 20021213 1_1_12-20021213 1_1_12-20021213 Cleanup: transport map entries with null nexthop ignored 1_1_12-20021213 relayhost settings. Making the code simpler also made it 1_1_12-20021213 more correct. Files: trivial-rewrite/resolve.c, 1_1_12-20021213 trivial-rewrite/transport.c. 1_1_12-20021213 1_1_12-20021213 Feature: "helpful_warnings" (default: yes) that can be 1_1_12-20021213 turned off if you really know what you're doing and want 1_1_12-20021213 to eliminate some unnecessary work. 1_1_12-20021213 1_1_12-20021213 Feature: enforcement of master.cf process limits for 1_1_12-20021213 processes such as qmgr and pickup that must run alone, and 1_1_12-20021213 processes such as cleanup and bounce that must run without 1_1_12-20021213 explicit process count limit. If an incorrect process limit 1_1_12-20021213 is specified in master.cf the service aborts. 1_1_12-20021213 1_1_12-20021214 20021214 1_1_12-20021214 1_1_12-20021214 Cleanup: it looks like we finally get it right with transport 1_1_12-20021214 lookup table entries that either override or specify an 1_1_12-20021214 error transport without updating the nexthop information. 1_1_12-20021214 File: trivial-rewrite/resolve.c. 1_1_12-20021214 1_1_12-20021214 Performance: don't do UCE checks (which may result in 4xx 1_1_12-20021217 SMTP reply codes, and thus, repeated delivery attempts) 1_1_12-20021217 when we already know that the recipient does not exist. 1_1_12-20021217 Files: smtpd/smtpd.c, smtpd/smtpd_check.c. 1_1_12-20021217 1_1_12-20021217 20021215 1_1_12-20021217 1_1_12-20021217 Cleanup: further simplification of transport map handling 1_1_12-20021217 after some really fine hair splitting with Victor Duchovni. 1_1_12-20021217 Files: trivial-rewrite/resolve.c, trivial-rewrite/transport.c. 1_1_12-20021217 1_1_12-20021217 20021216 1_1_12-20021217 1_1_12-20021217 Workaround: transform the address local-part into unquoted 1_1_12-20021217 form only when the address domain is local and the local-part 1_1_12-20021217 contains routing operators. Otherwise, we may damage the 1_1_12-20021217 address local-part by inserting space between non-operator 1_1_12-20021217 tokens. Some people use weird addresses and expect them to 1_1_12-20021217 be handled without damage. File: trivial-rewrite/resolve.c. 1_1_12-20021217 1_1_12-20021217 Robustness: scan the resolved recipient address for routing 1_1_12-20021217 operators in the address local-part, even when the local 1_1_12-20021217 MTA does not recognize ! and % as valid operators. File: 1_1_12-20021217 trivial-rewrite/resolve.c. 1_1_12-20021217 1_1_12-20021217 Cleanup: the address rewriting code no longer tries to 1_1_12-20021217 rewrite broken user@ or user@. address forms into even more 1_1_12-20021217 broken forms. bother. File: trivial-rewrite/rewrite.c. 1_1_12-20021217 1_1_12-20021217 Cleanup: the address resolver code now treates forms ending 1_1_12-20021217 in @ in a more rational manner (because the address rewriting 1_1_12-20021217 code no longer messes up by appending .my.domain). 1_1_12-20021217 1_1_12-20021217 Bugfix: a null address local-part before @domain now is 1_1_12-20021217 properly quoted just like the null address. File: 1_1_12-20021217 global/quote_82[12]_local.c. 1_1_12-20021217 1_1_12-20021217 20021217 1_1_12-20021217 1_1_12-20021217 Cleanup: more work on the trivial-rewrite address rewriting 1_1_12-20021217 and address resolving code. New regression tests for address 1_1_12-20021217 rewriting and resolving that make some assumptions about 1_1_12-20021217 main.cf settings. Files: global/Makefile.in (assumptions), 1_1_12-20021217 global/rewrite_clnt.in, global/rewrite_clnt.ref, 1_1_12-20021217 global/resolve_clnt.in, global/resolve_clnt.ref. 1_1_12-20021217 1_1_12-20021217 Safety: configurable SMTPD reject codes for recipients not 1_1_12-20021217 in {local,relay}_recipient,virtual_{alias,mailbox}}_maps, 1_1_12-20021217 aptly named unknown_mumble_reject_code. Postfix installs 1_1_12-20021217 with unknown_local_recipient_reject_code=450, unless the 1_1_12-20021217 site already ran Postfix with local_recipient_maps enabled. 1_1_12-20021217 Files: smtpd/smtpd.c, smtpd/smtpd_check.c, conf/post-install. 1_1_12-20021219 1_1_12-20021219 20021219 1_1_12-20021219 1_1_12-20021219 Bugfix: longjmp() while sending "go away" without setjmp() 1_1_12-20021219 in the QMQP server. Patrik Rak. File: qmqpd/qmqpd.c. 1_1_12-20021219 1_1_12-20021219 Safety: the XVERP extension is restricted to clients listed 1_1_12-20021219 in the authorized_verp_clients list (default: $mynetworks). 1_1_12-20021219 File: smtpd/smtpd.c. 1_1_12-20021219 1_1_12-20021219 Workaround: preliminary IPV6 support in valid_hostliteral(). 1_1_12-20021219 File: util/valid_hostname.c. 1_1_12-20021219 1_1_12-20021221 20021220 1_1_12-20021221 1_1_12-20021221 Feature: new check_recipient_maps restriction that gives 1_1_12-20021221 finer control over when unknown recipients are rejected. 1_1_12-20021221 As with Postfix 1.1, the default is to do this at the end 1_1_12-20021221 of the recipient restrictions. Sites that want to improve 1_1_12-20021221 performance can put check_recipient_maps at the start of 1_1_12-20021221 the smtpd_client_restrictions list and avoid doing unnecessary 1_1_12-20021221 RBL lookups etc. File: smtpd/smtpd_check.c. 1_1_12-20021221 1_1_12-20021221 Feature: new show_user_unknown_recipient_table parameter 1_1_12-20021221 controls whether or not to reveal the lookup table name in 1_1_12-20021221 "User unknown" responses. The extra detail makes trouble 1_1_12-20021221 shooting easier but also reveals information that is nobody 1_1_12-20021221 elses business. 1_1_12-20021221 2_0_0_1 2_0_0_1 20021221 2_0_0_1 2_0_0_1 Workaround: don't allow the transport map to override the 2_0_0_1 virtual alias class (error:User unknown) result. File: 2_0_0_1 trivial-rewrite/transport.c. 2_0_0_2 2_0_0_2 20030101 2_0_0_2 2_0_0_2 Documentation update: new-style virtual domains broke the 2_0_0_2 advanced content filtering example. Files: FILTER_README, 2_0_0_2 RELEASE_NOTES. 2_0_1 2_0_1 20030104 2_0_1 2_0_1 Cleanup: avoid warnings about flag mismatches when the same 2_0_1 lookup table is listed under both virtual_alias_maps and 2_0_1 virtual_mailbox_maps. Files: global/virtual8.h, virtual/virtual.c. 2_0_1 2_0_1 Bugfix: an obscure memory leak that puzzled me for more 2_0_1 than a year until I found out how to reproduce it. File: 2_0_1 util/vstream.c. 2_0_1 2_0_1 20030106 2_0_1 2_0_1 Robustness: the master no longer aborts with "address 2_0_1 already in use" when inet_interfaces specifies the same IP 2_0_1 address multiple times, or when a TCP service in master.cf 2_0_1 specifies a hostname for which the same IP address is listed 2_0_1 multiple times. File: master/master_ent.c. 2_0_1 2_0_1 20030107 2_0_1 2_0_1 Robustness: check that FILTER actions in SMTPD access maps 2_0_1 or cleanup header/body_checks have plausible syntax. Files: 2_0_1 smtpd/smtpd_check.c, cleanup/cleanup_message.c. 2_0_1 2_0_1 20030110 2_0_1 2_0_1 Cleanup: the virtual_mailbox_maps parameter is now optional 2_0_1 even when virtual_mailbox_domains is specified. This makes 2_0_1 virtual mailbox domains more like relay domains and the 2_0_1 local domain. 2_0_1 2_0_1 Portability: the makedefs script now uses the pcre-config 2_0_1 utility to find out where things are installed. 2_0_1 2_0_1 Bugfix: the SMTP server did not recognize the local built-in 2_0_1 double bounce address as local. Reported by Matthias Andree. 2_0_1 For safety sake, threw in the local postmaster address as 2_0_1 well. File: smtpd/smtpd_check.c. 2_0_2 2_0_2 20030113 2_0_2 2_0_2 Added MAILER-DAEMON to the list of always recognized local 2_0_2 addresses, since it is generated by Postfix bounces. File: 2_0_2 smtpd/smtpd_check.c. 2_0_2 2_0_2 20030114 2_0_2 2_0_2 Bugfix: transport_errno was not reset upon successful 2_0_2 transport map wildcard lookup after an earlier failure. 2_0_2 Reported by Victor Duchovni. File: trivial-rewrite/transport.c. 2_0_2 2_0_2 Cleanup: unnecessary warnings from the proxymap client 2_0_2 after proxymap server disconnect. File: global/dict_proxy.c. 2_0_2 2_0_2 Cleanup: Patrik Rak found a few more chattr invocations 2_0_2 that were missed 20021209. Files: postfix-install, 2_0_2 conf/post-install. 2_0_2 2_0_2 Cleanup: the pcre-config command can produce null outputs. 2_0_2 Matthias Andree. File: makedefs. 2_0_2 2_0_2 Bugfix: the virtual(8) Makefile included $(AUXLIBS) in the 2_0_2 dependencies. 2_0_2 2_0_2 20030115 2_0_2 2_0_2 Bugfix: fixed in the snapshots 20030105 but missed in the 2_0_2 stable release. "sendmail -bs" tried to access the proxymap 2_0_2 service. It should not try to open any user/domain/uce 2_0_2 related tables at all. File: smtpd/smtpd.c. 2_0_3 2_0_3 20030118 2_0_3 2_0_3 Typos: some hyperlinks referred to flushd, which is the 2_0_3 name that was used before the flush service was released. 2_0_3 Reported by Victor Duchovni. 2_0_3 2_0_3 Cleanup: smtpd no longer needed to open relocated_maps. 2_0_3 2_0_3 20030119 2_0_3 2_0_3 Cleanup: bounce messages used "X-Postfix" even when mail_name 2_0_3 was set to something other than the default "Postfix" name. 2_0_3 File: bounce/bounce-notify_util.c. 2_0_3 2_0_3 20030120 2_0_3 2_0_3 Bugfix: wrong FILTER_README instructions for disabling 2_0_3 virtual alias mapping in the cleanup server before the 2_0_3 content filter. 2_0_3 2_0_3 Bugfix: wrong FILTER_README instructions for destination-dependent 2_0_3 filtering, because relay_domains was specified incorrectly. 2_0_3 2_0_3 20030122 2_0_3 2_0_3 Bugfix: 20021207 (move relocated table lookup from queue 2_0_3 manager to trivial-rewrite server) broke relocated table 2_0_3 lookup results with mail not rejected at the SMTP port. 2_0_3 Files: *qmgr/qmgr_deliver.c, *qmgr/qmgr_message.c. 2_0_3 2_0_3 20030123 2_0_3 2_0_3 Bugfix: a widely used maildir filename algorithm was broken. 2_0_3 Postfix now uses TIME.DEVICE_INODE.HOST. Files: local/maildir.c, 2_0_3 virtual/maildir.c. 2_0_3 2_0_3 20030124 2_0_3 2_0_3 Cleanup: removed the address syntax check from the queue 2_0_3 manager, since a better test was implemented recently in 2_0_3 the trivial-rewrite server. Files: *qmgr/qmgr_message.c. 2_0_4 2_0_4 20030126 2_0_4 2_0_4 Update: maildir filename algorithm updated according to 2_0_4 today's version of http://cr.yp.to/proto/maildir.html. 2_0_4 2_0_4 20030127 2_0_4 2_0_4 Cleanup: use separate error messages for separate problems 2_0_4 with computing the list of SASL authentication mechanisms. 2_0_4 File: smtpd/smtpd_sasl_glue.c. 2_0_4 2_0_4 20030130 2_0_4 2_0_4 Bugfix: allow $name in default time values. File: 2_0_4 global/mail_conf_time.c. 2_0_4 2_0_4 20030219 2_0_4 2_0_4 Bugfix: the local pickup daemon skipped unterminated records, 2_0_4 since they happened to have the same record type code as 2_0_4 content filtering instructions. Victor Duchovni. Files: 2_0_4 global/rec_type.h, pickup/pickup.c. 2_0_4 2_0_4 Portability: Postfix could block, and thus not enforce 2_0_4 command execution time limits, while delivering mail to 2_0_4 command. File: global/pipe_command.c. 2_0_4 2_0_4 Bugfix: command execution time limits were not enforced 2_0_4 because the child process killing code in pipe_command() 2_0_4 was running with the wrong privileges. Problem reported by 2_0_4 Ben Rosengart, Panix. File: global/pipe_command.c. 2_0_4 2_0_4 Bugfix: duplicate recipient filtering in the cleanup server 2_0_4 did not eliminate virtual expansion duplicates with the 2_0_4 same original recipient. File: cleanup/cleanup_out_recipient.c. 2_0_4 2_0_5 20030223 2_0_5 2_0_5 Bugfix: smtpd_hard/soft_error_limit off-by-one error, so 2_0_5 that the real limit was one larger than the specified value. 2_0_5 File: smtpd/smtpd.c, smtpd/smtpd_chat.c. 2_0_5 2_0_5 20030226 2_0_5 2_0_5 Safety: proxymap server defense against potential deadlock 2_0_5 when some library routine wants to open a proxied table. 2_0_5 Instead, proxymap opens the requested table directly. File: 2_0_5 proxymap/proxymap.c. 2_0_5 2_0_5 20030227 2_0_5 2_0_5 Bugfix: added mynetworks to the list of proxy_read_maps 2_0_5 parameter settings that are pre-authorized to use proxied 2_0_5 table lookups. File: global/mail_params.h. 2_0_5 2_0_6 20030305 2_0_6 2_0_6 Workaround: Postfix removes too long non-address text from 2_0_6 message headers in order to protect vulnerable Sendmail 2_0_6 systems against exploitation of the remote buffer overflow 2_0_6 vulnerability described in CERT advisory CA-2003-07. 2_0_6 2_0_7 20030311-19 2_0_7 2_0_7 Bugfix: the access map actions HOLD, DISCARD and FILTER 2_0_7 were broken with smtpd_delay_reject=no and with ETRN. Fixing 2_0_7 this required re-architecting of the actions code. Files: 2_0_7 smtpd/smtpd.[hc], smtpd/smtpd_check.c, smtpd/smtpd_state.c. 2_0_7 2_0_7 20030315 2_0_7 2_0_7 Bugfix: the postsuper manual page documented support for 2_0_7 the -c command line option, but it was not implemented. 2_0_7 File: postsuper/postsuper.c. 2_0_7 2_0_7 Bugfix: the Postfix 2.0 recipient map checking code broke 2_0_7 the VRFY command, causing it to reply with status code 252 2_0_7 for non-existent addresses. This required re-architecting 2_0_7 the recipient table lookup code. File: smtpd/smtpd_check.c. 2_0_7 2_0_8 20030410 2_0_8 2_0_8 Safety: log a fatal error when a net/mask pattern has a 2_0_8 non-zero host part, so that mail delivery is deferred. 2_0_8 File: util/match_ops.c. 2_0_8 2_0_8 20030411 2_0_8 2_0_8 Bugfix: extraneous warning about out-of-order original 2_0_8 recipient records by Patrik Rak. Files: *qmgr/qmgr_message.c. 2_0_8 2_0_8 20030415 2_0_8 2_0_8 Workaround: log a warning and reset incoming queue file 2_0_8 time stamps when the file system clock is ahead of the 2_0_8 local clock, instead of ignoring new mail until the next 2_0_8 queue scan. The file system clock drift detection executes 2_0_8 only once per process instance, to minimize the performance 2_0_8 impact. File: global/mail_stream.c. 2_0_9 2_0_9 20030416 2_0_9 2_0_9 Bugfix: missing partial last line when 1) someone submits 2_0_9 8-bit mail not ending in newline via /usr/sbin/sendmail 2_0_9 and 2) MIME input processing is turned off, and 3) MIME 2_0_9 8bit->7bit conversion is requested upon delivery via SMTP. 2_0_10 2_0_10 20030424 2_0_10 2_0_10 Cleanup: readlline() did not terminate the result before 2_0_10 complaining about lines starting with whitespace. 2_0_10 2_0_10 Cleanup: eliminated valid_hostname warning for invalid 2_0_10 queue file names. File: global/mail_queue.c. 2_0_10 2_0_10 Bugfix: the Postfix sendmail command applied the message 2_0_10 size limit when running as newaliases. The limiting code 2_0_10 is now moved to the message enqueuing branch of the code. 2_0_10 File: sendmail/sendmail.c. 2_0_10 2_0_10 20030429 2_0_10 2_0_10 Bugfix: "," was not recognized in proxy_read_maps settings. 2_0_10 Fix by Leandro Santi. File: proxymap/proxymap.c. 2_0_10 2_0_10 20030502 2_0_10 2_0_10 Bugfix: defer delivery after .forward etc. file read error. 2_0_10 File: local/token.c. Problem reported by Ben Rosengart, 2_0_10 Panix. 2_0_10 2_0_10 20030520 2_0_10 2_0_10 Cleanup: future time stamps in Received: headers and negative 2_0_10 delays in delivery agent logging after "postdrop -r", 2_0_10 because deferred queue files had future file modification 2_0_10 times. File: src/postsuper/postsuper.c. 2_0_10 2_0_10 20030521 2_0_10 2_0_10 Cleanup: nqmgr warnings about "recipient count mismatch" 2_0_10 after "postdrop -r", because the cleanup server did not 2_0_10 count the "already done" recipients. Problem reported by 2_0_10 Richard Stockton, Gramma Software. Files: 2_0_10 cleanup/cleanup_envelope.c, cleanup/cleanup_extracted.c 2_0_11 2_0_11 20030528 2_0_11 2_0_11 Compatibility: "sendmail -q