1_1_11-trace-20021120 20021115 1_1_11-trace-20021120 1_1_11-trace-20021120 Start implementing recipient verification. For now this is 1_1_11-trace-20021120 done by adding trace flags to queue files. In case of a 1_1_11-trace-20021120 verification request, a delivery agent does not deliver, 1_1_11-trace-20021120 deliver, it just records what would happen. 1_1_11-trace-20021120 1_1_11-trace-20021120 This required instrumenting the bounce/defer/sent logging 1_1_11-trace-20021120 routines to send their data to the right place depending 1_1_11-trace-20021120 on the type of delivery request. 1_1_11-trace-20021120 1_1_11-trace-20021120 20021116 1_1_11-trace-20021120 1_1_11-trace-20021120 New trace service. This is used for reporting if a recipient 1_1_11-trace-20021120 is deliverable (sendmail -bv) and for producing a record 1_1_11-trace-20021120 of delivery attempts (sendmail -v). The report is sent via 1_1_11-trace-20021120 email, using the bounce daemon. Files: global/trace.[hc]. 1_1_11-trace-20021120 1_1_11-trace-20021120 This required replacing the bounce/defer logfile format by 1_1_11-trace-20021120 an extensible name=value format. Files: global/bounce_log.c, 1_1_11-trace-20021120 bounce/bounce_append_service.c. 1_1_11-trace-20021120 1_1_11-trace-20021120 20021117 1_1_11-trace-20021120 1_1_11-trace-20021120 New address verification service with simple expiration 1_1_11-trace-20021120 and refresh policy. Storage can be in-core or in permanent 1_1_11-trace-20021120 table. The daemon is appropriately called "verify". Files: 1_1_11-trace-20021120 global/verify_clnt.[hc], verify/verify.c. 1_1_11-trace-20021120 1_1_11-trace-20021120 20021118 1_1_11-trace-20021120 1_1_11-trace-20021120 Cleaning up the code for tracing and verification. Files: 1_1_11-trace-20021120 global/{log_adhoc,bounce,defer,trace,verify}.[hc]. 1_1_11-trace-20021120 1_1_11-trace-20021120 20021119 1_1_11-trace-20021120 1_1_11-trace-20021120 New address_verification_negative_cache = yes/no parameter 1_1_11-trace-20021120 controls whether Postfix stores the result of negatieve 1_1_11-trace-20021120 address verification probes. This reduces cache pollution 1_1_11-trace-20021120 but causes Postfix to send a probe for each address 1_1_11-trace-20021120 verification service query. File: verify/verify.c. 1_1_11-trace-20021120 1_1_11-trace-20021120 Added optimistic caching to the verify daemon, so that one 1_1_11-trace-20021120 failed probe will not clobber a known to be good address. 1_1_11-trace-20021120 As long as some probes succeeed, a good address will stay 1_1_11-trace-20021120 cached as OK. 1_1_11-trace-20021120 1_1_11-trace-20021120 Cleaning up of the bounce daemon's code for bounce, delayed 1_1_11-trace-20021120 mail warning and trace notification. Files: bounce/*.[hc], 1_1_11-trace-20021120 global/bounce_log.c. 1_1_11-trace-20021120 1_1_11-trace-20021121 20021120 1_1_11-trace-20021121 1_1_11-trace-20021121 Changed the probe's sender address to "postmaster" so that 1_1_11-trace-20021121 we get better information about the address we're testing. 1_1_11-trace-20021121 File: verify/verify.c. 1_1_11-trace-20021121 1_1_11-trace-20021121 Added some paranoia to the routine that reads data from 1_1_11-trace-20021121 the address verification cache. Ignore data that is obviously 1_1_11-trace-20021121 bogus. File: verify/verify.c. 1_1_11-trace-20021121 1_1_12-trace-20021124 20021121 1_1_12-trace-20021124 1_1_12-trace-20021124 Bugfix: garbage in "user@garbage"@domain address forms may 1_1_12-trace-20021124 cause the SMTP or LMTP client to terminate with a fatal 1_1_12-trace-20021124 error exit because garbage/tcp is not an existing service. 1_1_12-trace-20021124 This cannot be abused to cause the SMTP or LMTP client to 1_1_12-trace-20021124 send data into unauthorized ports. Files: *qmgr/qmgr_message.c, 1_1_12-trace-20021124 trivial-rewrite/resolve.c. 1_1_12-trace-20021124 1_1_12-trace-20021124 20021124 1_1_12-trace-20021124 1_1_12-trace-20021124 Bugfix: don't use same VSTRING buffer for reading and 1_1_12-trace-20021124 writing. File: verify/verify.c. 1_1_12-trace-20021124 1_1_12-trace-20021130 20021128 1_1_12-trace-20021130 1_1_12-trace-20021130 Feature: hashed hold queue support, with hashing turned on 1_1_12-trace-20021130 by default. Omission spotted by Victor Duchovni, Morgan 1_1_12-trace-20021130 Stanley. Files: global/hold_message.c, global/mail_params.h. 1_1_12-trace-20021130 1_1_12-trace-20021130 Bugfix: the LMTP client lost the port(service) information 1_1_12-trace-20021130 when parsing host:port information. Victor Duchovni, Morgan 1_1_12-trace-20021130 Stanley. Fix is to have a new host_port(3) module that does 1_1_12-trace-20021130 the parsing for the SMTP and LMTP clients. 1_1_12-trace-20021130 1_1_12-trace-20021130 Cleanup: host_port() routine that parses host/port information 1_1_12-trace-20021130 more consistently than the existing code in the LMTP and 1_1_12-trace-20021130 SMTP clients. Files: smtp/smtp_connect.c, lmtp/lmtp_connect.c, 1_1_12-trace-20021130 util/host_port.[hc]. 1_1_12-trace-20021130 1_1_12-trace-20021130 20021130 1_1_12-trace-20021130 1_1_12-trace-20021130 Cleanup: defer mail when recipient verification takes too 1_1_12-trace-20021130 long. File: smtpd/smtpd_proto.c. 1_1_12-trace-20021130 1_1_12-trace-20021130 Feature: new reject_multi_recipient_bounce restriction, to 1_1_12-trace-20021130 reject "MAIL FROM: <>" with multiple recipients. File: 1_1_12-trace-20021130 smtpd/smtpd_check.c. 1_1_12-trace-20021130 1_1_12-trace-20021202 20021201 1_1_12-trace-20021202 1_1_12-trace-20021202 Compatibility: ignore the new Sendmail -A option. File: 1_1_12-trace-20021202 sendmail/sendmail.c. 1_1_12-trace-20021202 1_1_12-trace-20021202 Workaround: sendmail -v now produces no output. You need 1_1_12-trace-20021202 to specify -v -v instead. This is to avoid problems when 1_1_12-trace-20021202 people request verbose mail delivery in their mail.rc file. 1_1_12-trace-20021202 File: sendmail/sendmail.c. 1_1_12-trace-20021202 1_1_12-trace-20021202 20021202 1_1_12-trace-20021202 1_1_12-trace-20021202 Cleanup: hash_queue_depth now defaults to 1 level of 1_1_12-trace-20021202 subdirectories. This makes "mailq" faster on most systems, 1_1_12-trace-20021202 but will result in poorer worst-case performance when lots 1_1_12-trace-20021202 of mail is queued. 1_1_12-trace-20021202 1_1_12-trace-20021202 The check_relay_domains restriction is going away. The SMTP 1_1_12-trace-20021202 server logs a warning and suggests using reject_unauth_destination 1_1_12-trace-20021202 instead. 1_1_12-trace-20021202 1_1_12-trace-20021202 Cleanup: the local(8) and virtual(8) delivery agents did 1_1_12-trace-20021202 not prepend X-Original-To: addresses to maildir files. 1_1_12-trace-20021202 Omission spotted by Matthias Andree. 1_1_12-trace-20021202 1_1_12-trace-20021202 Specify "address_verify_sender=" or "address_verify_sender=<>" 1_1_12-trace-20021202 to use a null sender address while doing address verification 1_1_12-trace-20021202 probes. Beware, doing so may trigger false negatives 1_1_12-trace-20021202 because some sites reject mail from the null sender, even 1_1_12-trace-20021202 though this is required by RFC standards. 1_1_12-trace-20021202 1_1_12-trace-20021202 Bugfix: too many levels of dereferencing while testing for 1_1_12-trace-20021202 missing reject_rbl_mumble domain names. Patrik Rak. File: 1_1_12-trace-20021202 smtpd/smtpd_check.c. 1_1_12-trace-20021202 1_1_12-trace-20021209 20021203 1_1_12-trace-20021209 1_1_12-trace-20021209 Bugfix: the FILTER access table action included the FILTER 1_1_12-trace-20021209 command in the filter request, where only the transport+destination 1_1_12-trace-20021209 were expected. Noel Jones. File smtpd/smtpd_check.c. 1_1_12-trace-20021209 1_1_12-trace-20021209 Cleanup: virtual_maps is now called virtual_alias_maps, in 1_1_12-trace-20021209 order to better distinguish it from virtual_mailbox_maps. 1_1_12-trace-20021209 The default value is $virtual_maps for backwards compatibility. 1_1_12-trace-20021209 1_1_12-trace-20021209 New parameters virtual_alias_domains and virtual_mailbox_domains 1_1_12-trace-20021209 for the "domain.tld whatever" lookups. These use the same 1_1_12-trace-20021209 syntax as the mydestination parameter. Default settings 1_1_12-trace-20021209 are backwards compatible with Postfix 1.1. 1_1_12-trace-20021209 1_1_12-trace-20021209 Concept: just like $mydestination+$inet_interfaces control 1_1_12-trace-20021209 what routes to $local_transport, $virtual_mailbox_domains 1_1_12-trace-20021209 now controls what routes to $virtual_transport (default 1_1_12-trace-20021209 transport: virtual), and $relay_domains now controls what 1_1_12-trace-20021209 routes to $relay_transport (default transport: relay, a 1_1_12-trace-20021209 clone of the smtp transport). Everything else routes to 1_1_12-trace-20021209 $default_transport as before. This eliminates the need 1_1_12-trace-20021209 for transport map entries for every virtual(8) domain, and 1_1_12-trace-20021209 avoids performance problems with inbound relay mail. This 1_1_12-trace-20021209 was improvement was suggested by Victor Duchovni. File: 1_1_12-trace-20021209 trivial-rewrite/resolve.c. 1_1_12-trace-20021209 1_1_12-trace-20021209 20021206 1_1_12-trace-20021209 1_1_12-trace-20021209 Cleanup: do allow regexps in aliases, virtual mailbox maps 1_1_12-trace-20021209 but do not allow regular expression substitutions. Files: 1_1_12-trace-20021209 util/dict.h, util/dict_regexp.c, util/dict_pcre.c. 1_1_12-trace-20021209 1_1_12-trace-20021209 20021207 1_1_12-trace-20021209 1_1_12-trace-20021209 Cleanup: deleted the description of sendmail-style virtual 1_1_12-trace-20021209 domains from the virtual(5) manual page. This part of 1_1_12-trace-20021209 Postfix was too confusing. 1_1_12-trace-20021209 1_1_12-trace-20021209 Performance: RFC 2821 blesses the use of CNAME domain names 1_1_12-trace-20021209 in MAIL FROM and RCPT TO. Not having to expand CNAME domain 1_1_12-trace-20021209 names speeds things up a bit. File: smtp/smtp_proto.c. 1_1_12-trace-20021209 1_1_12-trace-20021209 Workaround: exclude error mailer destinations from transport 1_1_12-trace-20021209 mapping lookups :-(. File: trivial-rewrite/resolve.c. 1_1_12-trace-20021209 1_1_12-trace-20021209 Cleanup: relocated_maps lookups are now moved to the 1_1_12-trace-20021209 trivial-rewrite server. As of now, the queue manager no 1_1_12-trace-20021209 longer does any map lookups, so it won't restart when maps 1_1_12-trace-20021209 change. Files: *qmgr/qmgr_message.c, trivial-rewrite/resolve.c. 1_1_12-trace-20021209 1_1_12-trace-20021209 Robustness: because the trivial-rewrite server now does 1_1_12-trace-20021209 many more table lookups, some of which are often LDAP or 1_1_12-trace-20021209 SQL based, trivial-rewrite clients must be be prepared for 1_1_12-trace-20021209 the case that the resolver reports a failure while processing 1_1_12-trace-20021209 a request (when it was unable to access a lookup table). 1_1_12-trace-20021209 Files: trivial-rewrite/resolve.c, local/resolve.c, 1_1_12-trace-20021209 smtpd/smtpd_check.c. 1_1_12-trace-20021209 1_1_12-trace-20021209 Robustness: moving possible LDAP or SQL table lookups into 1_1_12-trace-20021209 the trivial-rewrite server also required that trivial-rewrite 1_1_12-trace-20021209 be running as multiple processes to reduce lookup latencies. 1_1_12-trace-20021209 Files: master/multi-server.c. 1_1_12-trace-20021209 1_1_12-trace-20021209 Workaround: don't discard all the DNS lookup results when 1_1_12-trace-20021209 only one of the results has a malformed name or address. 1_1_12-trace-20021209 File: dns/dns_lookup.c. 1_1_12-trace-20021209 1_1_12-trace-20021209 20021208 1_1_12-trace-20021209 1_1_12-trace-20021209 Cleanup: with the preliminary address domain classification 1_1_12-trace-20021209 concept as implemented by the trivial-rewrite address 1_1_12-trace-20021209 resolver, a lot of table lookups could be eliminated from 1_1_12-trace-20021209 the SMTP server. Files: smtpd/smtpd_check.c. 1_1_12-trace-20021209 1_1_12-trace-20021209 Feature: new relay_recipient_maps parameter, for optional 1_1_12-trace-20021209 maps with all the recipients in the domains that match 1_1_12-trace-20021209 $relay_domains (so you can reject mail for unknown relay 1_1_12-trace-20021209 recipients). This is for consistency with virtual_xx_maps 1_1_12-trace-20021209 and virtual_xx_domains, and with local_recipient_maps and 1_1_12-trace-20021209 the local delivery agent. File: smtpd/smtpd_check.c. 1_1_12-trace-20021209 1_1_12-trace-20021209 Cleanup: removed support for obsolete #number domain forms. 1_1_12-trace-20021209 File: smtpd/smtpd_check.c. 1_1_12-trace-20021209 1_1_12-trace-20021209 20021209 1_1_12-trace-20021209 1_1_12-trace-20021209 The Postfix installation procedure no longer sets the 1_1_12-trace-20021209 "chattr +S" bit on Linux queue directories. Wietse has 1_1_12-trace-20021209 gotten too annoyed with naive reviewers who complain about 1_1_12-trace-20021209 performance without having a clue of what they are comparing. 1_1_12-trace-20021209 1_1_12-trace-20021209 "Security": local_recipient_maps is now turned on by default, 1_1_12-trace-20021209 to reject mail for non-existent users at the SMTP port. 1_1_12-trace-20021209 See conf/main.cf for instructions, section REJECTING UNKNOWN 1_1_12-trace-20021209 LOCAL USERS. 1_1_12-trace-20021209 1_1_12-trace-20021209 Safety: detection of missing or inaccessible passwd file 1_1_12-trace-20021209 database, to prevent massive complaints from people who 1_1_12-trace-20021209 suddenly lose all their mail because local_recipient_maps 1_1_12-trace-20021209 is now turned on by default. 1_1_12-trace-20021212 1_1_12-trace-20021212 20021210 1_1_12-trace-20021212 1_1_12-trace-20021212 Feature: recipient address verification, using the code 1_1_12-trace-20021212 that already implements sender address verification. Based 1_1_12-trace-20021212 on suggestion by Matthias Andree. Files: src/smtpd/smtpd.c, 1_1_12-trace-20021212 src/smtpd/smtpd_check.c. 1_1_12-trace-20021212 1_1_12-trace-20021212 20021211 1_1_12-trace-20021212 1_1_12-trace-20021212 Performance: doubled the default process limit (50->100) 1_1_12-trace-20021212 and default queue manager active queue message/recipient 1_1_12-trace-20021212 limits (10k->20k). File: global/mail_params.h. 1_1_12-trace-20021212 1_1_12-trace-20021212 Bugfix: the change that begot us multiple trivial-rewrite 1_1_12-trace-20021212 processes (good) also gave us multiple verify daemons (bad). 1_1_12-trace-20021212 File: conf/post-install. 1_1_12-trace-20021212 1_1_12-trace-20021212 20021212 1_1_12-trace-20021212 1_1_12-trace-20021212 Cleanup: allow transport map lookups to override error 1_1_12-trace-20021212 mailer results (to avoid breaking existing installations), 1_1_12-trace-20021212 and do transport map lookups before relocated map lookups. 1_1_12-trace-20021212 Files: trivial-rewrite/resolve.c, trivial-rewrite/transport.c. 1_1_12-trace-20021212 1_1_12-trace-20021212 Shortened the verify server's negative cache refresh time 1_1_12-trace-20021212 from 12 hours to 2 hours. File: global/mail_params.h. 1_1_12-trace-20021212 1_1_12-trace-20021212 Admin friendliness: the SMTP server now reports "User 1_1_12-trace-20021212 unknown in {local recipient | virtual alias | virtual 1_1_12-trace-20021212 mailbox | relay recipient} table". This will make trouble 1_1_12-trace-20021212 shooting a little easier. Files: smtpd/smtpd_check.c, 1_1_12-trace-20021212 trivial-rewrite/resolve.c. 1_1_12-trace-20021213 1_1_12-trace-20021213 20021213 1_1_12-trace-20021213 1_1_12-trace-20021213 Cleanup: transport map entries with null nexthop ignored 1_1_12-trace-20021213 relayhost settings. Making the code simpler also made it 1_1_12-trace-20021213 more correct. Files: trivial-rewrite/resolve.c, 1_1_12-trace-20021213 trivial-rewrite/transport.c. 1_1_12-trace-20021213 1_1_12-trace-20021213 Feature: "helpful_warnings" (default: yes) that can be 1_1_12-trace-20021213 turned off if you really know what you're doing and want 1_1_12-trace-20021213 to eliminate some unnecessary work. 1_1_12-trace-20021213 1_1_12-trace-20021213 Feature: enforcement of master.cf process limits for 1_1_12-trace-20021213 processes such as qmgr and pickup that must run alone, and 1_1_12-trace-20021213 processes such as cleanup and bounce that must run without 1_1_12-trace-20021213 explicit process count limit. If an incorrect process limit 1_1_12-trace-20021213 is specified in master.cf the service aborts. 1_1_12-trace-20021213 1_1_12-trace-20021214 20021214 1_1_12-trace-20021214 1_1_12-trace-20021214 Cleanup: it looks like we finally get it right with transport 1_1_12-trace-20021214 lookup table entries that either override or specify an 1_1_12-trace-20021214 error transport without updating the nexthop information. 1_1_12-trace-20021214 File: trivial-rewrite/resolve.c. 1_1_12-trace-20021214 1_1_12-trace-20021214 Robustness: don't probe the sender address when probed for 1_1_12-trace-20021214 our own address verification probe sender address. File: 1_1_12-trace-20021214 smtpd/smtpd_check.c. 1_1_12-trace-20021214 1_1_12-trace-20021214 Performance: don't do UCE checks (which may result in 4xx 1_1_12-trace-20021217 SMTP reply codes, and thus, repeated delivery attempts) 1_1_12-trace-20021217 when we already know that the recipient does not exist. 1_1_12-trace-20021217 Files: smtpd/smtpd.c, smtpd/smtpd_check.c. 1_1_12-trace-20021217 1_1_12-trace-20021217 20021215 1_1_12-trace-20021217 1_1_12-trace-20021217 Cleanup: further simplification of transport map handling 1_1_12-trace-20021217 after some really fine hair splitting with Victor Duchovni. 1_1_12-trace-20021217 Files: trivial-rewrite/resolve.c, trivial-rewrite/transport.c. 1_1_12-trace-20021217 1_1_12-trace-20021217 20021216 1_1_12-trace-20021217 1_1_12-trace-20021217 Workaround: transform the address local-part into unquoted 1_1_12-trace-20021217 form only when the address domain is local and the local-part 1_1_12-trace-20021217 contains routing operators. Otherwise, we may damage the 1_1_12-trace-20021217 address local-part by inserting space between non-operator 1_1_12-trace-20021217 tokens. Some people use weird addresses and expect them to 1_1_12-trace-20021217 be handled without damage. File: trivial-rewrite/resolve.c. 1_1_12-trace-20021217 1_1_12-trace-20021217 Robustness: scan the resolved recipient address for routing 1_1_12-trace-20021217 operators in the address local-part, even when the local 1_1_12-trace-20021217 MTA does not recognize ! and % as valid operators. File: 1_1_12-trace-20021217 trivial-rewrite/resolve.c. 1_1_12-trace-20021217 1_1_12-trace-20021217 Cleanup: the address rewriting code no longer tries to 1_1_12-trace-20021217 rewrite broken user@ or user@. address forms into even more 1_1_12-trace-20021217 broken forms. bother. File: trivial-rewrite/rewrite.c. 1_1_12-trace-20021217 1_1_12-trace-20021217 Cleanup: the address resolver code now treates forms ending 1_1_12-trace-20021217 in @ in a more rational manner (because the address rewriting 1_1_12-trace-20021217 code no longer messes up by appending .my.domain). 1_1_12-trace-20021217 1_1_12-trace-20021217 Bugfix: a null address local-part before @domain now is 1_1_12-trace-20021217 properly quoted just like the null address. File: 1_1_12-trace-20021217 global/quote_82[12]_local.c. 1_1_12-trace-20021217 1_1_12-trace-20021217 1_1_12-trace-20021217 20021217 1_1_12-trace-20021217 1_1_12-trace-20021217 Cleanup: more work on the trivial-rewrite address rewriting 1_1_12-trace-20021217 and address resolving code. New regression tests for address 1_1_12-trace-20021217 rewriting and resolving that make some assumptions about 1_1_12-trace-20021217 main.cf settings. Files: global/Makefile.in (assumptions), 1_1_12-trace-20021217 global/rewrite_clnt.in, global/rewrite_clnt.ref, 1_1_12-trace-20021217 global/resolve_clnt.in, global/resolve_clnt.ref. 1_1_12-trace-20021217 1_1_12-trace-20021217 Safety: configurable SMTPD reject codes for recipients not 1_1_12-trace-20021217 in {local,relay}_recipient,virtual_{alias,mailbox}}_maps, 1_1_12-trace-20021217 aptly named unknown_mumble_reject_code. Postfix installs 1_1_12-trace-20021217 with unknown_local_recipient_reject_code=450, unless the 1_1_12-trace-20021217 site already ran Postfix with local_recipient_maps enabled. 1_1_12-trace-20021217 Files: smtpd/smtpd.c, smtpd/smtpd_check.c, conf/post-install. 1_1_12-trace-20021218 1_1_12-trace-20021218 20021218 1_1_12-trace-20021218 1_1_12-trace-20021218 Feature: specify unverified_recipient_reject_code=250 or 1_1_12-trace-20021218 unverified_sender_reject_code=250 to accept mail for an 1_1_12-trace-20021218 address that is known to bounce. File: smtpd/smtpd_check.c. 1_1_12-trace-20021218 1_1_12-trace-20021219 20021219 1_1_12-trace-20021219 1_1_12-trace-20021219 Bugfix: longjmp() while sending "go away" without setjmp() 1_1_12-trace-20021219 in the QMQP server. Patrik Rak. File: qmqpd/qmqpd.c. 1_1_12-trace-20021219 1_1_12-trace-20021219 Safety: the XVERP extension is restricted to clients listed 1_1_12-trace-20021219 in the authorized_verp_clients list (default: $mynetworks). 1_1_12-trace-20021219 File: smtpd/smtpd.c. 1_1_12-trace-20021219 1_1_12-trace-20021219 Workaround: preliminary IPV6 support in valid_hostliteral(). 1_1_12-trace-20021219 File: util/valid_hostname.c. 1_1_12-trace-20021219 1_1_12-trace-20021221 20021220 1_1_12-trace-20021221 1_1_12-trace-20021221 Bugfix: the reject_multi_recipient_bounce restriction had 1_1_12-trace-20021221 an off-by-one error when used in smtpd_data_restrictions. 1_1_12-trace-20021221 File: smtpd/smtpd_check.c. 1_1_12-trace-20021221 1_1_12-trace-20021221 Feature: new check_recipient_maps restriction that gives 1_1_12-trace-20021221 finer control over when unknown recipients are rejected. 1_1_12-trace-20021221 As with Postfix 1.1, the default is to do this at the end 1_1_12-trace-20021221 of the recipient restrictions. Sites that want to improve 1_1_12-trace-20021221 performance can put check_recipient_maps at the start of 1_1_12-trace-20021221 the smtpd_client_restrictions list and avoid doing unnecessary 1_1_12-trace-20021221 RBL lookups etc. File: smtpd/smtpd_check.c. 1_1_12-trace-20021221 1_1_12-trace-20021221 Feature: new show_user_unknown_recipient_table parameter 1_1_12-trace-20021221 controls whether or not to reveal the lookup table name in 1_1_12-trace-20021221 "User unknown" responses. The extra detail makes trouble 1_1_12-trace-20021221 shooting easier but also reveals information that is nobody 1_1_12-trace-20021221 elses business. 1_1_12-trace-20021221 2_0_0-20021223 20021221 2_0_0-20021223 2_0_0-20021223 Workaround: don't allow the transport map to override the 2_0_0-20021223 virtual alias class (error:User unknown) result. File: 2_0_0-20021223 trivial-rewrite/transport.c. 2_0_0-20021223 2_0_0-20030101 20030101 2_0_0-20030101 2_0_0-20030101 Documentation update: new-style virtual domains broke the 2_0_0-20030101 advanced content filtering example. Files: FILTER_README, 2_0_0-20030101 RELEASE_NOTES-2.0. 2_0_0-20030101 2_0_0-20030104 20030102 2_0_0-20030104 2_0_0-20030104 Cleanup: use different client instances when the same map 2_0_0-20030104 is opened with different flags. File: global/maps.c. 2_0_0-20030104 2_0_0-20030104 Feature: proxymap server for Postfix table lookups. This 2_0_0-20030104 helps to consolidate the number of open lookup tables (such 2_0_0-20030104 as MYSQL or LDAP), or to overcome chroot restrictions 2_0_0-20030104 (example: specify proxy:unix:passwd.byname to avoid the 2_0_0-20030104 need for a copy of the UNIX passwd file in chroot jails). 2_0_0-20030104 Files: global/dict_proxy.[hc], proxymap/proxymap.c 2_0_0-20030104 2_0_0-20030104 Cleanup: multiservers such as trivial-rewrite and the new 2_0_0-20030104 proxymap server now enforce the max_use total client number 2_0_0-20030104 limit more agressively, by not accepting new connections 2_0_0-20030104 after the limit is reached. Based on a patch by Victor 2_0_0-20030104 Duchovni, Morgan Stanley. File: master/multi_server.c. 2_0_0-20030104 2_0_0-20030104 20030103 2_0_0-20030104 2_0_0-20030104 Cleanup: client stream endpoints not only have an idle time 2_0_0-20030104 limit ($ipc_idle) before a connection is closed, they now 2_0_0-20030104 also have a time to live ($ipc_ttl) to prevent connections 2_0_0-20030104 from becoming too persistent. This allows multi-servers 2_0_0-20030104 such as trivial-rewrite or the proxymap server to refresh 2_0_0-20030104 more frequently on busy systems. File: global/clnt_stream.c. 2_0_0-20030104 2_0_0-20030104 20030104 2_0_0-20030104 2_0_0-20030104 Cleanup: avoid warnings about flag mismatches when the same 2_0_0-20030104 lookup table is listed under both virtual_alias_maps and 2_0_0-20030104 virtual_mailbox_maps. Files: global/virtual8.h, virtual/virtual.c. 2_0_0-20030104 2_0_0-20030104 Bugfix: an obscure memory leak that puzzled me for more 2_0_0-20030104 than a year until I found out how to reproduce it. File: 2_0_0-20030104 util/vstream.c. 2_0_0-20030104 2_0_0-20030106 20030105 2_0_0-20030106 2_0_0-20030106 Cleanup: removed the address syntax check from the queue 2_0_0-20030106 manager, since a better test was implemented recently in 2_0_0-20030106 the trivial-rewrite server. Files: *qmgr/qmgr_message.c. 2_0_0-20030106 2_0_0-20030106 Bugfix: redirect bounce/defer to the address verification 2_0_0-20030106 service where appropriate. Files: *qmgr/qmgr_bounce.c, 2_0_0-20030106 *qmgr/qmgr_defer.c. 2_0_0-20030106 2_0_0-20030106 Bugfix: "no such file or directory" warnings after "postfix 2_0_0-20030106 reload" when a chrooted smtpd reconnects to the proxy 2_0_0-20030106 service. Fix: use "private/proxymap" if possible, otherwise 2_0_0-20030106 use "$queue_dir/private/proxymap". File: global/dict_proxy.c. 2_0_0-20030106 2_0_0-20030106 Robustness: daemons now chdir() to the queue directory 2_0_0-20030106 before running the pre-jail initialization code, so that 2_0_0-20030106 daemons running in stand-alone mode produce more consistent 2_0_0-20030106 results. Files: master/single_server.c, master/multi_server.c. 2_0_0-20030106 master/trigger_server.c. 2_0_0-20030106 2_0_0-20030106 Bugfix: "sendmail -bs" tried to access the proxymap service. 2_0_0-20030106 It should not try to open any user/domain/uce related tables 2_0_0-20030106 at all. File: smtpd/smtpd.c. 2_0_0-20030106 2_0_0-20030107 20030106 2_0_0-20030107 2_0_0-20030107 Bugfix: bouncing to owner-alias was broken, i.e. the mail 2_0_0-20030107 kept being deferred, and when that was fixed, another buglet 2_0_0-20030107 came to light. File: bounce/bounce.c. 2_0_0-20030107 2_0_0-20030107 Robustness: the master no longer aborts with "address 2_0_0-20030107 already in use" when inet_interfaces specifies the same IP 2_0_0-20030107 address multiple times, or when a TCP service in master.cf 2_0_0-20030107 specifies a hostname for which the same IP address is listed 2_0_0-20030107 multiple times. File: master/master_ent.c. 2_0_0-20030107 2_0_0-20030109 20030107 2_0_0-20030109 2_0_0-20030109 Robustness: check that FILTER actions in SMTPD access maps 2_0_0-20030109 or cleanup header/body_checks have plausible syntax. Files: 2_0_0-20030109 smtpd/smtpd_check.c, cleanup/cleanup_message.c. 2_0_0-20030109 2_0_0-20030109 20030109 2_0_0-20030109 2_0_0-20030109 Cleanup: unnecessary "premature end of file on xxx while 2_0_0-20030109 reading yyy" warnings became exposed after some code 2_0_0-20030109 simplification. Files" global/*_clnt.c, global/dict_proxy.c 2_0_0-20030109 2_0_0-20030109 Robustness: undo the change that causes a multi-server 2_0_0-20030109 process to stop accepting new connections while it still 2_0_0-20030109 services existing clients for an extended amount of time. 2_0_0-20030109 We need a better process retirement strategy. File: 2_0_0-20030109 master/multi_server.c. 2_0_0-20030109 2_0_1-20030112 20030110 2_0_1-20030112 2_0_1-20030112 Cleanup: the virtual_mailbox_maps parameter is now optional 2_0_1-20030112 even when virtual_mailbox_domains is. This makes virtual 2_0_1-20030112 mailbox domains more like relay domains and the local 2_0_1-20030112 domain. 2_0_1-20030112 2_0_1-20030112 Portability: the makedefs script now uses the pcre-config 2_0_1-20030112 utility to find out where things are installed. 2_0_1-20030112 2_0_1-20030112 Bugfix: the SMTP server did not recognize the local built-in 2_0_1-20030112 double bounce address as local. Reported by Matthias Andree. 2_0_1-20030112 For safety sake, threw in the local postmaster address as 2_0_1-20030112 well. File: smtpd/smtpd_check.c. 2_0_1-20030112 2_0_2-20030115 20030113 2_0_2-20030115 2_0_2-20030115 Added MAILER-DAEMON to the list of always recognized local 2_0_2-20030115 addresses, since it is generated by Postfix bounces. File: 2_0_2-20030115 smtpd/smtpd_check.c. 2_0_2-20030115 2_0_2-20030115 20030114 2_0_2-20030115 2_0_2-20030115 Bugfix: transport_errno was not reset upon successful 2_0_2-20030115 transport map wildcard lookup after an earlier failure. 2_0_2-20030115 Reported by Victor Duchovni. File: trivial-rewrite/transport.c. 2_0_2-20030115 2_0_2-20030115 Cleanup: unnecessary warnings from the proxymap client 2_0_2-20030115 after proxymap server disconnect. File: global/dict_proxy.c. 2_0_2-20030115 2_0_2-20030115 Cleanup: Patrik Rak found a few more chattr invocations 2_0_2-20030115 that were missed 20021209. Files: postfix-install, 2_0_2-20030115 conf/post-install. 2_0_2-20030115 2_0_2-20030115 Cleanup: the pcre-config command can produce null outputs. 2_0_2-20030115 Matthias Andree. File: makedefs. 2_0_3-20030124 2_0_3-20030124 Bugfix: the virtual(8) Makefile included $(AUXLIBS) in the 2_0_3-20030124 dependencies. 2_0_3-20030124 2_0_3-20030124 20030118 2_0_3-20030124 2_0_3-20030124 Typos: some hyperlinks referred to flushd, which is the 2_0_3-20030124 name that was used before the flush service was released. 2_0_3-20030124 Reported by Victor Duchovni. 2_0_3-20030124 2_0_3-20030124 Cleanup: smtpd no longer needed to open relocated_maps. 2_0_3-20030124 2_0_3-20030124 20030119 2_0_3-20030124 2_0_3-20030124 Cleanup: bounce messages used "X-Postfix" even when mail_name 2_0_3-20030124 was set to something other than the default "Postfix" name. 2_0_3-20030124 File: bounce/bounce-notify_util.c. 2_0_3-20030124 2_0_3-20030124 20030120 2_0_3-20030124 2_0_3-20030124 Bugfix: wrong FILTER_README instructions for disabling 2_0_3-20030124 virtual alias mapping in the cleanup server before the 2_0_3-20030124 content filter. 2_0_3-20030124 2_0_3-20030124 Bugfix: wrong FILTER_README instructions for destination-dependent 2_0_3-20030124 filtering, because relay_domains was specified incorrectly. 2_0_3-20030124 2_0_3-20030124 20030122 2_0_3-20030124 2_0_3-20030124 Bugfix: 20021207 (move relocated table lookup from queue 2_0_3-20030124 manager to trivial-rewrite server) broke relocated table 2_0_3-20030124 lookup results with mail not rejected at the SMTP port. 2_0_3-20030124 Files: *qmgr/qmgr_deliver.c, *qmgr/qmgr_message.c. 2_0_3-20030124 2_0_3-20030124 20030123 2_0_3-20030124 2_0_3-20030124 Bugfix: a widely used maildir filename algorithm was broken. 2_0_3-20030124 Postfix now uses TIME.DEVICE_INODE.HOST. Files: local/maildir.c, 2_0_3-20030124 virtual/maildir.c. 2_0_3-20030125 2_0_3-20030125 20030124 2_0_3-20030125 2_0_3-20030125 Cleanup: queue structures no longer overload queue name 2_0_3-20030125 and nexthop destination. Files: *qmgr/qmgr_message.c, 2_0_3-20030125 *qmgr/qmgr_queue.c, *qmgr/qmgr_deliver.c. 2_0_3-20030125 2_0_3-20030125 20030125 2_0_3-20030125 2_0_3-20030125 Feature: "REDIRECT user@domain" action in access maps or 2_0_3-20030125 in header/body_checks causes mail to be sent to the specified 2_0_3-20030125 address instead of the intended recipient(s). I would never 2_0_3-20030125 recommend that people use this to redirect (bounced) SPAM 2_0_3-20030125 to the beneficiaries of an advertisement campaign. Files: 2_0_3-20030125 smtpd/smtpd_check.c, cleanup/cleanup_message.c, 2_0_3-20030125 *qmgr/qmgr_message.c. 2_0_3-20030125 2_0_3-20030126 20030126 2_0_3-20030126 2_0_3-20030126 Update: maildir filename algorithm updated according to 2_0_3-20030126 today's version of http://cr.yp.to/proto/maildir.html. 2_0_4-20030219 2_0_4-20030219 20030127 2_0_4-20030219 2_0_4-20030219 Cleanup: use separate error messages for separate problems 2_0_4-20030219 with computing the list of SASL authentication mechanisms. 2_0_4-20030219 File: smtpd/smtpd_sasl_glue.c. 2_0_4-20030219 2_0_4-20030219 20030130 2_0_4-20030219 2_0_4-20030219 Bugfix: allow $name in default time values. File: 2_0_4-20030219 global/mail_conf_time.c. 2_0_4-20030219 2_0_4-20030219 20030205 2_0_4-20030219 2_0_4-20030219 Feature: allow !, /file/name and map:name in masquerade_exceptions. 2_0_4-20030219 By Liviu Daia. Files:cleanup_init.c, cleanup.h, 2_0_4-20030219 cleanup_masquerade.c. 2_0_4-20030219 2_0_4-20030219 20030219 2_0_4-20030219 2_0_4-20030219 Bugfix: the local pickup daemon skipped unterminated records, 2_0_4-20030219 since they happened to have the same record type code as 2_0_4-20030219 content filtering instructions. Victor Duchovni. Files: 2_0_4-20030219 global/rec_type.h, pickup/pickup.c. 2_0_4-20030219 2_0_4-20030219 Portability: Postfix could block, and thus not enforce 2_0_4-20030219 command execution time limits, while delivering mail to 2_0_4-20030219 command. File: global/pipe_command.c. 2_0_4-20030219 2_0_4-20030219 Bugfix: command execution time limits were not enforced 2_0_4-20030219 because the child process killing code in pipe_command() 2_0_4-20030219 was running with the wrong privileges. Problem reported by 2_0_4-20030219 Ben Rosengart, Panix. File: global/pipe_command.c. 2_0_4-20030219 2_0_4-20030219 Bugfix: duplicate recipient filtering in the cleanup server 2_0_4-20030219 did not eliminate virtual expansion duplicates with the 2_0_4-20030219 same original recipient. File: cleanup/cleanup_out_recipient.c. 2_0_5-20030303 2_0_5-20030303 20030223 2_0_5-20030303 2_0_5-20030303 Cleanup: added postmap/postalias -p option (do not inherit 2_0_5-20030303 the source file permissions when creating a new file), for 2_0_5-20030303 completeness. A feature that can't be turned off is a bug. 2_0_5-20030303 Files: postmap/postmap.c, postalias/postalias.c. 2_0_5-20030303 2_0_5-20030303 Bugfix: smtpd_hard/soft_error_limit off-by-one error, so 2_0_5-20030303 that the real limit was one larger than the configured 2_0_5-20030303 value. File: smtpd/smtpd.c, smtpd/smtpd_chat.c. 2_0_5-20030303 2_0_5-20030303 20030226 2_0_5-20030303 2_0_5-20030303 Safety: proxymap server defense against potential deadlock 2_0_5-20030303 when some library routine wants to open a proxied table. 2_0_5-20030303 Instead, proxymap opens the requested table directly. File: 2_0_5-20030303 proxymap/proxymap.c. 2_0_5-20030303 2_0_5-20030303 Portability: updated AIX 5.x system dependent definitions. 2_0_5-20030303 File: util/sys_defs.h. 2_0_5-20030303 2_0_5-20030303 20030227 2_0_5-20030303 2_0_5-20030303 Bugfix: added mynetworks to the list of proxy_read_maps 2_0_5-20030303 parameter settings that are pre-authorized to use proxied 2_0_5-20030303 table lookups. File: global/mail_params.h. 2_0_5-20030303 2_0_5-20030303 Cleanup: daemons now log what table has changed before 2_0_5-20030303 restarting. Files: dict.c, and anything that invoked 2_0_5-20030303 dict_changed(). 2_0_5-20030303 2_0_5-20030303 Cleanup: more consistency in the naming of lookup table 2_0_5-20030303 handles as generated by maps(3) and by match_list(3). 2_0_5-20030303 2_0_6-20030305 20030305 2_0_6-20030305 2_0_6-20030305 Workaround: Postfix removes too long non-address text from 2_0_6-20030305 message headers in order to protect vulnerable Sendmail 2_0_6-20030305 systems against exploitation of the remote buffer overflow 2_0_6-20030305 vulnerability described in CERT advisory CA-2003-07. 2_0_6-20030305 2_0_7-20030319 20030311-19 2_0_7-20030319 2_0_7-20030319 Bugfix: the access map actions HOLD, DISCARD, FILTER and 2_0_7-20030319 REDIRECT were broken with smtpd_delay_reject=no and with 2_0_7-20030319 ETRN. This required re-architecting of the actions code. 2_0_7-20030319 Files: smtpd/smtpd.[hc], smtpd/smtpd_check.c, smtpd/smtpd_state.c. 2_0_7-20030319 2_0_7-20030319 20030315 2_0_7-20030319 2_0_7-20030319 Bugfix: the postsuper manual page documented support for 2_0_7-20030319 the -c command line option, but it was not implemented. 2_0_7-20030319 File: postsuper/postsuper.c. 2_0_7-20030319 2_0_7-20030319 Bugfix: the Postfix 2.0 recipient map checking code broke 2_0_7-20030319 the VRFY command, causing it to reply with status code 252 2_0_7-20030319 for non-existent addresses. This required re-architecting 2_0_7-20030319 the recipient table lookup code. File: smtpd/smtpd_check.c. 2_0_7-20030319 2_0_7-20030319 20030319 2_0_7-20030319 2_0_7-20030319 Feature: configurable limit on virtual alias expansion size 2_0_7-20030319 and nesting depth, via the virtual_alias_expansion_limit 2_0_7-20030319 and virtual_alias_recursion_limit parameters. The default 2_0_7-20030319 limits are compatible with past Postfix versions. Victor 2_0_7-20030319 Duchovni, Morgan Stanley. Files: /sample-resource.cf, 2_0_7-20030319 html/resource.html, cleanup/cleanup.c, cleanup/cleanup_init.c, 2_0_7-20030319 cleanup/cleanup_map1n.c. 2_0_7-20030319 2_0_7-20030319 Feature: the installation procedure records build information 2_0_7-20030319 (by default: in /etc/postfix/makedefs.out). 2_0_7-20030319 2_0_8-20030415 20030324 2_0_8-20030415 2_0_8-20030415 Bugfix: smtp-source flushed too often, causing suboptimal 2_0_8-20030415 performance with smtp-source sending directly into smtp-sink. 2_0_8-20030415 Files: smtpstone/smtp-source.c. 2_0_8-20030415 2_0_8-20030415 20030410 2_0_8-20030415 2_0_8-20030415 Safety: log a fatal error when a net/mask pattern has a 2_0_8-20030415 non-zero host part, so that mail delivery is deferred. 2_0_8-20030415 File: util/match_ops.c. 2_0_8-20030415 2_0_8-20030415 20030411 2_0_8-20030415 2_0_8-20030415 Bugfix: extraneous warning about out-of-order original 2_0_8-20030415 recipient records by Patrik Rak. Files: *qmgr/qmgr_message.c. 2_0_8-20030415 2_0_8-20030415 20030412 2_0_8-20030415 2_0_8-20030415 Workaround: log a warning and reset the queue file time 2_0_8-20030415 stamps when the file system clock is ahead of the local 2_0_8-20030415 clock. File: global/mail_stream.c. 2_0_8-20030415 2_0_8-20030415 20030414 2_0_8-20030415 2_0_8-20030415 Feature: PostgreSQL client module, adopted by LaMont Jones. 2_0_8-20030415 Files: README_FILES/PGSQL_README, util/dict_pgsql.c, 2_0_8-20030415 util/dict_pgsql.h, conf/sample-pgsql-aliases.cf. 2_0_8-20030415 2_0_8-20030415 Cleanup: the generic smtp client/server code in smtp_stream.c 2_0_8-20030415 now has an explicit flush operation, and the smtp-source/sink 2_0_8-20030415 programs are updated to take advantage of this. 2_0_8-20030415 2_0_8-20030415 Cleanup: the file system clock drift detection code now 2_0_8-20030415 runs only once per process instance, to minimize the 2_0_8-20030415 performance impact. File: global/mail_stream.c. 2_0_8-20030415 2_0_8-20030415 Robustness: avoid TIME_WAIT state with smtp/qmqp-source 2_0_8-20030415 client sockets. This puts less strain on local system 2_0_8-20030415 resources. 2_0_8-20030415 2_0_8-20030415 20030415 2_0_8-20030415 2_0_8-20030415 Cleanup: the file system clock drift detection code now 2_0_8-20030415 runs only for incoming mail. File: global/mail_stream.c. 2_0_8-20030417 2_0_8-20030417 20030416 2_0_8-20030417 2_0_8-20030417 Bugfix: missing partial last line when 1) someone submits 2_0_8-20030417 8-bit mail not ending in newline via /usr/sbin/sendmail 2_0_8-20030417 and 2) MIME input processing is turned off, and 3) MIME 2_0_8-20030417 8bit->7bit conversion is requested upon delivery via SMTP. 2_0_8-20030417 2_0_8-20030417 Cleanup: auto-bcc recipients are now added in one place 2_0_8-20030417 (the cleanup server) instead of by individual front-end 2_0_8-20030417 servers (pickup, smtpd, qmqpd). This makes it easier to 2_0_8-20030417 add auto-bcc features that trigger on sender or recipient 2_0_8-20030417 addresses. 2_0_8-20030417 2_0_8-20030417 Cleanup: "sendmail -t" (recipients from headers) is now 2_0_8-20030417 implemented by the sendmail command instead of by the 2_0_8-20030417 cleanup server. This means that the extract_recipient_limit 2_0_8-20030417 configuration parameter is no longer needed. Files: 2_0_8-20030417 sendmail/sendmail.c, cleanup/cleanup_message.c, 2_0_8-20030417 cleanup/cleanup_extracted.c. 2_0_8-20030417 2_0_8-20030417 Compatibility: "sendmail -t" (recipients from headers) now 2_0_8-20030417 accepts command-line recipients instead of complaining. 2_0_8-20030417 The extracted header recipients are added to the command-line 2_0_8-20030417 recipients. 2_0_8-20030417 2_0_8-20030417 Feature: sender/recipient_bcc_maps. These are indexed by 2_0_8-20030417 sender/recipient address and are examined when mail enters 2_0_8-20030417 from outside of Postfix. Files: cleanup/cleanup_addr.c. 2_0_8-20030417 cleanup/cleanup_envelope.c cleanup/cleanup_extracted.c. 2_0_8-20030417 2_0_8-20030417 20030417 2_0_8-20030417 2_0_8-20030417 Feature: the SMTP client now falls back to native name 2_0_8-20030417 service lookups (including /etc/hosts) when a host cannot 2_0_8-20030417 be found in the DNS. This is controlled by a new parameter 2_0_8-20030417 smtp_host_lookup (default: dns, native). Files: smtp/smtp.c, 2_0_8-20030417 smtp/smtp_addr.c. 2_0_9-20030418 2_0_9-20030418 20030418 2_0_9-20030418 2_0_9-20030418 Bugfix: "sendmail -t" broke with unrecognized message 2_0_9-20030418 headers. 2_0_9-20030419 2_0_9-20030419 20030419 2_0_9-20030419 2_0_9-20030419 Feature: "postcat -q" searches the queue for the named 2_0_9-20030419 file. 2_0_9-20030419 2_0_9-20030419 Cleanup: made postcat "record names" output more consistent. 2_0_9-20030419 2_0_9-20030424 20030421 2_0_9-20030424 2_0_9-20030424 Debugging: added some extra detailed error logging to the 2_0_9-20030424 pipe-to-command delivery, to help folks with bizarre file 2_0_9-20030424 truncation problems. File: global/pipe_command.c. 2_0_9-20030424 2_0_9-20030424 20030424 2_0_9-20030424 2_0_9-20030424 Cleanup: readlline() did not terminate the result before 2_0_9-20030424 complaining about lines starting with whitespace. 2_0_9-20030424 2_0_9-20030424 Cleanup: eliminated valid_hostname warning for invalid 2_0_9-20030424 queue file names. File: global/mail_queue.c. 2_0_9-20030424 2_0_9-20030424 Bugfix: lost three lines of code when readying the postcat 2_0_9-20030424 command for release, which broke postcat -q. File: 2_0_9-20030424 postcat/postcat.c. 2_0_9-20030424 2_0_9-20030424 Bugfix: the Postfix sendmail command applied the message 2_0_9-20030424 size limit when running as newaliases. The limiting code 2_0_9-20030424 is now moved to the message enqueuing branch of the code. 2_0_9-20030424 File: sendmail/sendmail.c. 2_0_9-20030424 2_0_9-20030424 Documentation: start of documentation for the algorithm of 2_0_9-20030424 Patrik Rak's clever queue manager scheduler (nqmgr). Files: 2_0_9-20030424 conf/sample-scheduler.cf, README_FILES/SCHEDULER_README. 2_0_9-20030424 2_0_10-20030521 20030429 2_0_10-20030521 2_0_10-20030521 Bugfix: while verifying an address, the LMTP client entered 2_0_10-20030521 a forbidden "next" sender state after the last recipient. 2_0_10-20030521 Fix by Vladimir Davydoff. File: lmtp/lmtp_proto.c. 2_0_10-20030521 2_0_10-20030521 Bugfix: "," was not recognized in proxy_read_maps settings. 2_0_10-20030521 Fix by Leandro Santi. File: proxymap/proxymap.c. 2_0_10-20030521 2_0_10-20030521 20030502 2_0_10-20030521 2_0_10-20030521 Bugfix: defer delivery after .forward etc. file read error. 2_0_10-20030521 File: local/token.c. Problem reported by Ben Rosengart, 2_0_10-20030521 Panix. 2_0_10-20030521 2_0_10-20030521 20030503 2_0_10-20030521 2_0_10-20030521 Bugfix: the Postfix LMTP client used the wrong service 2_0_10-20030521 name, causing trouble with SASL 2.1.13. Daniel Schales, 2_0_10-20030521 Louisiana Tech. File: lmtp/lmtp_sasl_glue.c. 2_0_10-20030521 2_0_10-20030521 20030518 2_0_10-20030521 2_0_10-20030521 Workaround: IRIX select() reports that a non-blocking file 2_0_10-20030521 descriptor is writable while write() transfers zero bytes. 2_0_10-20030521 File: util/vstream.c. Superseded by change 20030523. 2_0_10-20030521 2_0_10-20030521 20030520 2_0_10-20030521 2_0_10-20030521 Cleanup: future time stamps in Received: headers and negative 2_0_10-20030521 delays in delivery agent logging after "postdrop -r", 2_0_10-20030521 because deferred queue files had future file modification 2_0_10-20030521 times. File: src/postsuper/postsuper.c. 2_0_10-20030521 2_0_10-20030521 20030521 2_0_10-20030521 2_0_10-20030521 Cleanup: nqmgr warnings about "recipient count mismatch" 2_0_10-20030521 after "postdrop -r", because the cleanup server did not 2_0_10-20030521 count the "already done" recipients. Problem reported by 2_0_10-20030521 Richard Stockton, Gramma Software. Files: 2_0_10-20030521 cleanup/cleanup_envelope.c, cleanup/cleanup_extracted.c. 2_0_11-20030609 2_0_11-20030609 20030523 2_0_11-20030609 2_0_11-20030609 Workaround: IRIX select() reports that a non-blocking file 2_0_11-20030609 descriptor is writable while write() transfers zero bytes. 2_0_11-20030609 File: global/pipe_command.c. 2_0_11-20030609 2_0_11-20030609 20030523-20030605 2_0_11-20030609 2_0_11-20030609 Cleanup: rewrote the queue file record processing loops in 2_0_11-20030609 pickup, cleanup and in [n]qmgr. This code had deteriorated 2_0_11-20030609 a lot as the result of small changes over the years. This 2_0_11-20030609 change brings the code closer to "obviously correct". Files: 2_0_11-20030609 cleanup/cleanup_envelope.c, cleanup/cleanup_extracted.c, 2_0_11-20030609 *qmgr/qmgr_message.c. 2_0_11-20030609 2_0_11-20030609 Cleanup: Postfix no longer produces queue files with 2_0_11-20030609 backwards compatibility data for Postfix versions < 1.0 2_0_11-20030609 (a.k.a. 20010228). Files: cleanup/cleanup_extracted.c, 2_0_11-20030609 showq/showq.c. 2_0_11-20030609 2_0_11-20030609 Performance: the queue manager no longer has to examine 2_0_11-20030609 every queue file record before it can start deliveries. 2_0_11-20030609 This helps to avoid thrashing with very large mailing lists. 2_0_11-20030609 Postfix queue files have an extra field in the size record 2_0_11-20030609 with queue manager processing hints. This change is backward 2_0_11-20030609 and forward compatible. Files: cleanup/cleanup_envelope.c, 2_0_11-20030609 cleanup/cleanup_extracted.c, *qmgr/qmgr_message.c. 2_0_11-20030609 2_0_11-20030609 20030528 2_0_11-20030609 2_0_11-20030609 Compatibility: "sendmail -q