Skip to content
HISTORY 811 KiB
Newer Older
Boris Mühmer's avatar
Boris Mühmer committed
20001 20002 20003 20004 20005 20006 20007 20008 20009 20010 20011 20012 20013 20014 20015 20016 20017 20018 20019 20020 20021 20022 20023 20024 20025 20026 20027 20028 20029 20030 20031 20032 20033 20034 20035 20036 20037 20038 20039 20040 20041 20042 20043 20044 20045 20046 20047 20048 20049 20050 20051 20052 20053 20054 20055 20056 20057 20058 20059 20060 20061 20062 20063 20064 20065 20066 20067 20068 20069 20070 20071 20072 20073 20074 20075 20076 20077 20078 20079 20080 20081 20082 20083 20084 20085 20086 20087 20088 20089 20090 20091 20092 20093 20094 20095 20096 20097 20098 20099 20100 20101 20102 20103 20104 20105 20106 20107 20108 20109 20110 20111 20112 20113 20114 20115 20116 20117 20118 20119 20120 20121 20122 20123 20124 20125 20126 20127 20128 20129 20130 20131 20132 20133 20134 20135 20136 20137 20138 20139 20140 20141 20142 20143 20144 20145 20146 20147 20148 20149 20150 20151 20152 20153 20154 20155 20156 20157 20158 20159 20160 20161 20162 20163 20164 20165 20166 20167 20168 20169 20170 20171 20172 20173 20174 20175 20176 20177 20178 20179 20180 20181 20182 20183 20184 20185 20186 20187 20188 20189 20190 20191 20192 20193 20194 20195 20196 20197 20198 20199 20200 20201 20202 20203 20204 20205 20206 20207 20208 20209 20210 20211 20212 20213 20214 20215 20216 20217 20218 20219 20220 20221 20222 20223 20224 20225 20226 20227 20228 20229 20230 20231 20232 20233 20234 20235 20236 20237 20238 20239 20240 20241 20242 20243 20244 20245 20246 20247 20248 20249 20250 20251 20252 20253 20254 20255 20256 20257 20258 20259 20260 20261 20262 20263 20264 20265 20266 20267 20268 20269 20270 20271 20272 20273 20274 20275 20276 20277 20278 20279 20280 20281 20282 20283 20284 20285 20286 20287 20288 20289 20290 20291 20292 20293 20294 20295 20296 20297 20298 20299 20300 20301 20302 20303 20304 20305 20306 20307 20308 20309 20310 20311 20312 20313 20314 20315 20316 20317 20318 20319 20320 20321 20322 20323 20324 20325 20326 20327 20328 20329 20330 20331 20332 20333 20334 20335 20336 20337 20338 20339 20340 20341 20342 20343 20344 20345 20346 20347 20348 20349 20350 20351 20352 20353 20354 20355 20356 20357 20358 20359 20360 20361 20362

20140624

	Cleanup: the commands "make (makefiles|install|upgrade|package)
	parameter=value" now replace the string MAIL_VERSION in a
	configuration parameter value with the Postfix release
	version.  Unfortunately, the more obvious approach, a
	parameter value with the unexpanded '$mail_version', produces
	inconsistent results with different make implementations.
	Files: makedefs, Makefile.in, postfix-install, proto/INSTALL.html,
	proto/PACKAGE_README.html

	Cleanup: postmulti now requires "postmulti -e init" before
	accepting other multi-instance requests.  Viktor Dukhovni.
	File: conf/postmulti-script.

20140625

	Kludge: moved dict_db_cache_size away from dict_db.c in
	preparation for Berkeley DB database plugin support (a
	similar kludge was implemented for LMDB).  Files:
	util/dict_db.[hc], util/dict_test.c, global/mail_params.c.

	Cleanup: don't leak build directory information via SHLIB_ENV
	in makedefs.out.  Files: Makefile.in, conf/postfix-files.

20140626

	Cleanup: construction debris. Files: Makefile.in,
	conf/postfix-script.

	Cleanup: replace the result of MAIL_VERSION expansion with
	$mail_version in main.cf installation parameter settings,
	to permit safe upgrade of a running mail system. File:
	postfix-install.

	Cleanup: replace the result of MAIL_VERSION expansion with
	$mail_version in built-in default installation parameter
	settings, for consistency with main.cf. File: makedefs,
	postfix-install, conf/post-install.

	Cleanup: removed $mail_version from the default shlib_directory
	value. Files: global/mail_params.h, proto/INSTALL.html.

	Cleanup: in postfix-script, use find instead of ls to
	determine permissions or ownership, and group some checks
	with "pathname/." and "pathname/*" into one.  Downside:
	more warnings will now have "/./" in the middle of a pathname.
	File: conf/postfix-script.

	Cleanup: need to evaluate mail_version before evaluating
	parameters that may contain $mail_version. File:
	global/mail_params.c.

	Cleanup: the postmulti command now exercises the postconf
	"-x" option to expand $parameter_name in secondary-instance
	parameter values.  File: postmulti/postmulti.c.

	Cleanup: post-install also needed to replace the result of
	MAIL_VERSION expansion with $mail_version, for the same
	reasons as postfix-script. Viktor Dukhovni. File:
	conf/post-install.

20140627

	Bugfix (introduced: 20140626) broken build and broken install
	with default shlib_directory. Files: makedefs.

	Bugfix (introduced: 20140627) "make install" stopped with
	a bogus error when there was no real "make install name=value"
	parameter override.  Files: conf/post-install.

	Cleanup: support MAIL_VERSION magic (see INSTALL) only at
	the end of a parameter value. Files: proto/INSTALL.html
	makedefs, postfix-install, conf/postfix-files.

	Cleanup: use ${mail_version} as the MAIL_VERSION-unexpanded
	form.  Viktor Dukhovni. Files: makedefs, postfix-install,
	conf/postfix-files.

20140630

	Cleanup: the pipeline and random lookup tables are now
	called pipemap and randmap, respectively. These names are
	more specific. The old names remain available, at least
	temporarily.  Files: util/dict_pipe.[hc], util/dict_random.[hc],
	postconf/postconf.c, mantools/postlink, proto/DATABASE_README.html.

	Feature: smtpd_policy_service_request_limit to limit the
	number of requests per Postfix SMTP server policy connection.
	This is a workaround to avoid error-recovery delays with
	policy servers that cannot maintain a persistent connection.
	Based on code by Markus Benning. Files: global/mail_params.h,
	mantools/postlink, proto/SMTPD_POLICY_README.html,
	proto/postconf.proto, smtpd/smtpd.c, smtpd/smtpd_check.c,
	util/attr_clnt.[hc].

20140701

	Cleanup: documented how Postfix maintains dictionary
	provenance. Provenance matters: for example, the owner UID
	of an aliases(5) database file determines the execution
	privileges for delivery to |command or /file/name.  Refined
	the algorithm that computes the provenance of a pipemap,
	based on the provenance of its constituent lookup tables.
	Files: util/dict.[hc], util/dict_pipe.c.

	Cleanup: made mail_spool_directory configurable with "make
	makefiles mail_spool_directory=/path/name".  This allows
	Postfix to be built without any pathnames that reference
	system directories. This is useful for testing and sandboxing.
	Files: global/mail_params.h, makedefs.

	Cleanup: configurable attr_clnt(3) retry strategy (try limit
	and retry delay).  Files: util/attr_clnt.[hc].

	Feature: control over SMTPD policy lookup error handling:
	smtpd_policy_service_try_limit, smtpd_policy_service_retry_delay,
	smtpd_policy_service_default_action determine how many times
	to try to send a policy request before giving up, the delay
	before resending a failed policy request, and a default
	action when giving up. The defaults are backwards-compatible.
	Files: global/mail_params.h, mantools/postlink,
	proto/postconf.proto, smtpd/smtpd.c, smtpd/smtpd_check.c.

20140709

	Cleanup: bitrot in unused function. File: global/defer.c.

	Cleanup: add SYSLIBS minus static libraries while building
	Postfix shared-library objects. Files: makedefs, util/Makefile.in,
	global/Makefile.in, dns/Makefile.in, master/Makefile.in/.

20140708

	Bugfix (introduced 20140701): did not restore jumpbuf while
	evaluatingsmtpd_policy_service_default_action.  Viktor
	Dukhovni. File: smtpd/smtpd_check.c.

	Feature: VERY PRELIMINARY support for SMTPUTF8 based on an
	initial implementation by Arnt Gulbrandsen, funded by CNNIC.
	This implements the syntax of SMTP commands and DSN delivery
	status notifications. It does not address the problem that
	the same domain name may show up in different forms: an
	UTF8-encoded name with non-ASCII charaters, or an IDNA-encoded
	(xn--mumble) name with ASCII-only characters. This means
	that access policies, mydestination, virtual_*_domains and
	relay_domans will have to understand both forms in order
	to provide complete coverage.  For now, SMTPUTF8 support
	must not be enabled except for testing.

20140710

	Portability: add '-Wl,--enable-new-dtags' to the linker
	command line with building with Postfix shared libraries
	on Linux. Viktor Dukhovni. file: makedefs.

20140711

	Background: What is SMTPUTF8 autodetection? Postfix cannot
	rely solely on the sender's declaration that a message
	requires SMTPUTF8 support, because UTF8 may be introduced
	during local processing (for example, the client hostname
	in Postfix's Received: header, adding @$myorigin or .$mydomain
	to an incomplete address, address rewriting, alias expansion,
	automatic BCC recipients, local forwarding, and modifications
	made by header checks or Milter applications).  This means
	that some form of autodetection is needed that a message
	requires SMTPUTF8 support.

	Cleanup: don't try to distinguish between UTF that is already
	present in a message or envelope, and UTF8 that is introduced
	during local processing (see above).  Maintaining this
	distinction is too problematic.

	Cleanup: mailing list friendliness. Allow delivery of
	SMTPUTF8 mail to non-SMTPUTF8 servers when a message has
	no UTF8 headers, no UTF8 envelope sender, and when the
	specific delivery request contains no UTF8 envelope recipient.
	This is needed for mailing lists that may have a mix of
	UTF8 and non-UTF8 subscriber addresses. File: global/smtputf8.h,
	smtp/smtp_proto.c.

	Cleanup: moved all SMTPUTF8 detection to the cleanup server,
	so that it can apply equally to sendmail command-line
	submission, forwarded mail, postmaster notifications,
	delivery status notifications, mail received with the qmqpd
	server, address verification probes, as well as UTF8
	introduced during local processing (see above).  Files:
	cleanup/cleanup_out.c, cleanup/cleanup_addr.c.

	Cleanup: store the SMTPUTF8 message (i.e. non-recipient)
	flags in the first queue file record, so that the queue
	manager can find the information without having to read
	every queue file record.  Files: cleanup/cleanup_final.c,
	*qmgr/qmgr_message.c.

20140713

	Interoperability: new parameter smtputf8_autodetect_classes
	for selective autodetection that a message requires UTF8SMTP
	support. During the initial SMTPUTF8 rollout, this is limited
	by default to Postfix sendmail command-line submissions and
	address verification probes.  Sites that introduce UTF8
	during local processing (see above) will have to enable
	SMTPUTF8 autodetection for all mail sources. This feature
	shares infrastructure with the older internal_filter_classes
	feature.  Files: bounce/bounce_notify_service.c,
	bounce/bounce_notify_verp.c, bounce/bounce_one_service.c,
	bounce/bounce_trace_service.c, bounce/bounce_warn_service.c,
	global/int_filt.c, global/mail_proto.h, global/smtputf8.c,
	local/forward.c, pickup/pickup.c, qmqpd/qmqpd.c, smtp/smtp_chat.c,
	smtpd/smtpd.c, smtpd/smtpd_chat.c, verify/verify.c.

	Feature: preliminary message/global support. This does not
	yet parse encoded message/global (such as message/global
	sent through an non-8BITMIME system). Such mail cannot yet
	be inspected with header_checks. File: global/mime_state.c.

20140714

	Cleanup: update the "smtputf8" delivery request flags when
	VERP expansion causes an UTF8 recipient address to appear
	in the envelope sender address.  Files: *qmgr/qmgr_deliver.c.

	Cleanup: emit the correct content transfer encoding name
	when downgrading message/global as quoted-printable. File:
	global/mime_state.c.

	Cleanup: generate a bounce message with MIME type *global*
	only when the original message requested SMTPUTF8 support.
	File: bounce/bounce_notify_util.c.

	Cleanup: propagate the "SMTPUTF8 support requested" flag
	when bouncing a message or when forwarding a message through
	a local alias or .forward file.  Files: local/forward.c,
	bounce/bounce_notify_util.c, src/global/post_mail.[hc], and
	specify a dummy argument SMTPUTF8_FLAGS_NONE in all other
	programs that programs that invoke post_mail_fopen*(),

20140715

	Cleanup: change extract_addr() API to indicate that an
	address is parsed in SMTPUTF8 context. File: smtpd/smtpd.c.

	Cleanup: shared-library build fixes. Viktor Dukhovni.  Files:
	makedefs, dns/Makefile.in, global/Makefile.in, master/Makefile.in,
	tls/Makefile.in, util/Makefile.in.

	First general release with SMTPUTF8 support; see RELEASE_NOTES
	for an initial writeup.  The last pre-SMTPUTF8 release is
	snapshot 20140713.

20140716

	Paranoia: validate UTF8 before exposing it to libicuuc.
	File: util/midna.c.

	Typo: Postfix did not warn when smtputf8_enable=yes while
	UTF-8 support is not compiled in. File: global/mail_params.c.

	Cleanup: hard-coded GCC dependencies. Eray Aslan. File:
	makedefs.

20140717

	Safety: manipulate unsigned characters while decoding.
	Files: global/xtext.c, global/uxtext.c.

	Infrastructure: ACE label to UTF-8 conversion. Files:
	util/midna.[hc].

	Infrastructure: macro expansion with printable() filter.
	Files: util/mac_expand.[hc].

	Feature: when expanding myhostname or mydomain in bounce
	template messages, and smtputf8_enable=yes, convert ACE
	(xn--mumble) labels into UTF-8.  bounce/bounce_template.c.

20140720

	Cleanup: charset selection and content-transfer encoding
	in bounce messages (work in progress). The proper solution
	requires separate handling of the returned-message MIME
	properties and of the (boiler-plate text, delivery status)
	MIME properties.  File: bounce/bounce_notify_util.c.

20140722

	Documentation: the TLS_README example for creating a
	self-signed certificate was incomplete. Also, added
	"smtp_tls_loglevel = 1" and "smtpd_tls_loglevel = 1" settings
	to cookbook recipes, so that TLS handshake results will be
	logged. Viktor Dukhovni.  File: proto/TLS_README.html.

	Documentation: update Perl MIME::Base64 example.  File:
	proto/SASL_README.html.

	Documentation: update pointer to Bennett Todd's SMTP proxy.
	File: proto/SMTPD_PROXY_README.html.

20140725

	Documentation: describe what features are controlled by
	parent_domain_matches_subdomains, both in the description
	of the controlled feature, and in the description of
	parent_domain_matches_subdomains. File: proto/postconf.proto.

	Cleanup: smtpd_client_event_limit_exceptions is now controlled
	with parent_domain_matches_subdomains, with backwards-compatible
	default (specify .example.com in order to match subdomains
	of example.com). Files: smtpd/smtpd.c.

	Documentation: SMTPUTF8_README, an updated version of text
	that was originally part of the RELEASE_NOTES file. Files:
	proto/SMTPUTF8_README.html, proto/Makefile.in, html/index.html.

20140731

	Feature: the Postfix SMTP server now logs at the end of a
	session how many times each SMTP command was successfully
	invoked, followed by the total number of invocations if it
	is different.  File: smtpd/smtpd.c.

20140802

	Workaround: detect mis-configuration where Postfix talks
	to the Dovecot master socket instead of the Dovecot userdb
	socket. Timo Sirainen. File: xsasl/xsasl_dovecot_server.c.

20140904

	Logging: the MySQL client now logs a warning when a match
	against the "domain" list fails due to table lookup error
	(the underlying mechanism already logs a warning, but it
	has less context information).  File: global/dict_mysql.c.

20140907

	Feature: with "confirm_delay_cleared = yes", Postfix informs
	the sender when delayed mail leaves the queue. This can
	result in a sudden burst of notifications at the end of a
	prolonged network outage, and is therefore disabled by
	default. Files: mantools/postlink, proto/postconf.proto,
	global/deliver_request.h, global/mail_params.h, global/sent.c,
	*qmgr/qmgr.c, *qmgr/qmgr_active.c, *qmgr/qmgr_message.c.

20140908-14

	Feature: for the first time in 17 years, support for
	${name?if-nonempty:if-empty} macro expressions, and for
	logical expressions ${logical-expr?if-true:if-false}. In
	preparation for configurable message headers and logging.
	Files: util/mac_expand.c.

20140914

	Bugfix (introduced: 19971026): a zero precision value in
	%.*s and $.<digits>s was implemented as if no precision
	value was specified, i.e. print the entire string. This was
	not harmful, it just looked weird.  File: util/vbuf_print.c.

Boris Mühmer's avatar
Boris Mühmer committed
20140917
Boris Mühmer's avatar
Boris Mühmer committed

	Feature: RFC 7372 enhanced status code for unknown SMTP
	client hostnames.  File: smtpd/smtpd_check.c

	Bugfix: the accept() calls in test progams escaped attention
	when Postfix 2.2 was ported to IPv6. Problem found by Mark
	Martinec. Files: smtpstone/smtp-sink.c, smtpstone/qmqp-sink.c.

20140918

	Cleanup: log a warning when the cleanup server detects too
	many hops. smtpd(8) does not log any of the CLEANUP_STAT_XXX
	results. The pickup server logs some because there is no
	client to send the problem description to. This logic of
	who logs what needs to be revisited. File:
	cleanup/cleanup_message.c.

20140919

	Usability: randmap and pipemap syntax, for example,
	pipemap:{type_1:name_1, ..., type_n:name_n}.  This required
	small updates to code that parses input into lookup table
	names. Files: global/data_redirect.c, global/maps.c,
	global/server_acl.c, postconf/postconf.c, postconf/postconf_dbms.c,
	postconf/test58.ref, proto/DATABASE_README.html,
	proxymap/proxymap.c, smtpd/smtpd_check.c, util/argv.h,
	util/balpar.c, util/dict_pipe.c, util/dict_random.c,
	util/match_list.c, util/mystrtok.c, util/argv_splitq.c,
	util/stringops.h.

	Cleanup: added PRINTFLIKE() to enable missing format string
	checks. Files: bounce/bounce_template.h, global/memcache_proto.h,
	global/dict_memcache, postconf/postconf.h, util/dict.h,
	util/msg.h.

Boris Mühmer's avatar
Boris Mühmer committed
20140920

	Bugfix (introduced: 20080212): incorrect client name in
	reject messages from check_reverse_client_hostname_access
Boris Mühmer's avatar
Boris Mühmer committed
	and check_reverse_client_hostname_{a,mx,ns}_access.  They
Boris Mühmer's avatar
Boris Mühmer committed
	replied with the verified client name, instead of the name
	that was rejected.  Problem reported by Reindl Harald. File:
	smtpd/smtpd_check.c.

Boris Mühmer's avatar
Boris Mühmer committed
20140921

	Cleanup: postconf code to determine the default mydomain
	value had not evolved since 1997, while the rest of Postfix
	changed in 2000.  File: postconf/postconf-dbms.c.

20140922

	Cleanup: the confirm_delay_cleared feature now sends no
	notification when the sender requests NOTIFY options that
	do not include NOTIFY=DELAY. Files: global/deliver_request,h,
	global/sent.c, *qmgr/qmgr_active.c, *qmgr/qmgr_message.c.

	Bugfix (introduced: yesterday): missing print arguments.
	File: postconf/postconf_dbms.c.

	Cleanup: simplified "nested" lookup table checks.

	Cleanup: replace stress-dependent main.cf defaults with the
	ternary form: "${stress?{x}:{y}}" File: global/mail_params.h,
	proto/postconf.proto, postscreen/postscreen.c (comments).

20140923

	Cleanup: dict_db and dict_lmdb global settings. Files:
	global/mail_params.c, util/dict_open.c.

	Feature: unionmap, based on contribution by Roel van Meer.
	Files: mantools/postlink, postconf/postconf.c (manpage),
	proto/DATABASE_README.html, util/dict_open.c, util/dict_union.[hc].

20140924

	Bugfix (introduced: 20060117): the escape function didn't
	correctly convert non-ASCII. File: util/unescape.c.

	Bugfix (introduced: 201407): missing conversions for non-ASCII
	domain names in permit_mx_backup, check_mumble_{a,mx,ns}_access
	and reject_unknown_{sender,recipient}_domain. Mark Martinec.
	File: smtpd/smtpd_check.c.

20140925

	Cleanup: support for per-Milter settings, for example:
	smtpd_milters = {inet:host:port, default_action=accept,
	...}.  Specify the Milter endpoint address followed by zero
	or more attribute=value pairs separated by comma or space.
	The supported attributes are command_timeout, connect_timeout,
	content_timeout, default_action, and protocol. These have
	the same names as the corresponding main.cf parameters,
	minus the "milter_" prefix.  Files: global/mail_conf_over.c,
	global/mail_conf_str.c, global/mail_conf_time.c,
	global/mail_conf.h, milter/milters.c.

20140927

	Cleanup: specify { name = value } in per-Milter settings,
	to support space around the "=" or comma/space within the
	value. Files: global/attr_over.[hc].

	Cleanup: "postconf -n" now only shows config_directory when
	an override is in effect (environment, -c or -o).

	Cleanup: support for master.cf arguments inside {}, to
	protect arguments that contain whitespace. File:
	master/master_ent.c, postconf/postconf_master.c,
	postconf/test59.ref.

	Cleanup: support for per-policy client settings, for example:
	check_policy_service {inet:host:port, default_action=dunno,
	timeout=50s, ...}. Specify the policy server endpoint address
	followed by zero or more attribute=value pairs separated
	by comma or space.  Specify { name = value } for attributes
	that contain whitespace; otherwise, space is not allowed
	around the "=".  The supported attributes are default_action,
	max_idle, max_ttl, request_limit, retry_delay, timeout, and
	try_limit. These have the same names as the corresponding
	main.cf parameters, minus the "smtpd_policy_service_" prefix.
	Files: global/mail_conf_int.c, global/mail_conf.h,
	global/attr_override.[hc], smtpd/smtpd_check.c.

20140928

	Cleanup: extpar.c module to reduce code duplication.  Files:
	global/attr_override.c, master/master_ent.c, milter/milter.c,
	postconf/postconf_dbms.c, postconf/postconf_master.c,
	smtpd/smtpd_check.c, util/extpar.c, util/stringops.h.

	Cleanup: the table-driven code for per-Milter and per-policy
	overrides now updates stack-based variables, instead of
	(ugh) statically-allocated variables. Files:
	global/attr_override.[hc], smtpd/smtpd_check.c, milter/milter.c.

	Documentation: added advanced configuration sections for
	how to use per-Milter and per-policy settings.  Files:
	proto/SMTPD_POLICY_README.html, proto/MILTER_README.html.

	Cleanup: force LANG=C to prevent groff from outputting
	non-ASCII cruft into the HTML-ized manpages.  Files:
	html/Makefile.in, proto/Makefile.in, many HTML output files.

20140929

	Cleanup: the table-driven code for per-Milter and per-policy
	overrides now updates arbitrary variables, so that it can
	also be used for, say, TLS policies. Files:
	global/attr_override.[hc], smtpd/smtpd_check.c, milter/milter.c.

	Documentation: support for "{ argument with whitespace }"
	in master(5) and pipe(8). Files: proto/master, src/pipe/pipe.c.

	Documentation: in ADDRES_VERIFY_README, replaced "nearest
	MTA" with "preferred MTA". The SMTP client was changed years
	ago to try alternate MXes after a 4XX SMTP server response.
	File: proto/ADDRES_VERIFY_README.html.

20141001

	Safety: backwards-compatibility safety net that forces
	Postfix to run with backwards-compatible default settings
	after an upgrade to a newer Postfix version.  Postfix logs
	all uses of those backwards-compatible default settings so
	that the system administator can determine whether or not
	some backwards-compatible default settings need to be made
	permanent in main.cf or master.cf.  All this is controlled
	with a new compatibility_level parameter, default value 0.
	Files: global/mail_params.[hc], trivial-rewrite/rewrite.c,
	master/master_ent.c, smtpd/smtpd.c, postfix/postfix.c.

	New defaults for master.cf chroot (n), append_dot_mydomain
	(no) and smtputf8_enable (yes). File: global/mail_params.h,
	global/mail_params.c, smtp/smtp.c (manpage), smtpd/smtpd.c
	(manpage), trivial-rewrite/trivial-rewrite.c.

	Simple relational expression evaluator so that main.cf
	defaults can be made dependent on comparisons with the
	compatibility_level parameter value. File: util/mac_expand.c.

	Bugfix: do not reset the mail transaction after receiving
	a non-ASCII recipient. File: smtpd/smtpd.c.

20141002

	Cleanup: moved the details of BC safety-net messages from
	RELEASE_NOTES to postconf(5) manpage, and changed the wording
	of the BC messages. Files: RELEASE_NOTES, proto/postconf.proto,
	master/master_ent.c, smtpd/smtpd.c, trivial-rewrite/rewrite.c.

20141003

	Workaround: kludge for multiple paragraphs of text in
	indented paragraphs.  Files: mantools/postconf2html,
	mantools/postconf2man, proto/Makefile.in, proto/postconf.proto

20141005

	Cleanup: CHARSET_COMMA_SP, CHARSET_SPACE and CHARSET_BRACE
	to prepare for the elimination of ad-hoc string constants.
	File: util/sys_defs.h.

	Cleanup: allow "{ name=value }" to protect whitespace in
	import_environment and export_environment. Files:
	proto/postconf.proto, global/mail_parm_split.c, global
	/mail_parm_split.h, global/mail_stream.c, local/command.c,
	master/master.c, pipe/pipe.c, postdrop/postdrop.c,
	postfix/postfix.c, postmulti/postmulti.c, postqueue/postqueue.c,
	spawn/spawn.c.

20141006

	Backwards compatibility: log a helpful message when "localhost"
	is missing from mydestination. Files: trivial_rewrite/rewrite.c,
	trivial_rewrite/resolve.c, trivial-rewrite/trivial-rewrite.h,
	proto/postconf.proto.

	Cleanup: message_drop_header for configurable header dropping
	(default: bcc, content-length, resent-bcc, return-path).
	The list of supported header names covers RFC 5321, 5322,
	MIME RFCs, and some historical names.  File: global/header_opts.c,
	global/mail_params.[hc], cleanup/cleanup.c (manpage),
	proto/postconf.proto, mantools/postlink.

20141008

	New defaults: "relayhost=" and "mynetworks_style = host",
	plus a backwards-compatibility safety net that warns when
	the change in defaults could result in rejection of mail
	(with mynetworks_style this requires that Postfix evaluates
	both old and new default values).  Files: proto/postconf.proto,
	global/flush_clnt.c, global/mail_params.c, global/mail_params.h,
	global/mynetworks.c, global/mynetworks.h, global/server_acl.c,
	postconf/postconf_builtin.c, smtpd/smtpd.c, smtpd/smtpd_check.c.

20141009

	Documentation: moved the gory details from postconf(5) to
	a new COMPATIBILITY_README document. Files: proto/postconf.proto,
	proto/COMPATIBILITY_README.html html/index.html.

	Documentation: update the conf/main.cf compatibility_level
	setting for new Postfix installs, and updated a reminder
	in mail_params.h.

20141010

	Cleanup: make "const char myname[]" declarations static.
	global/attr_override.c, global/bounce.c, global/dsn_filter.c,
	global/dynamicmaps.c, global/mkmap_open.c, global/smtputf8.c,
	smtp/smtp_key.c, smtpd/smtpd_check.c, util/dict_pipe.c,
	util/dict_union.c, util/mac_expand.c, util/midna.c,
	util/valid_utf8_hostname.c.

	Documentation: summarize the user-specified "make makefiles"
	settings at the top of makedefs.out. This file now has so
	many internal variables that people would get lost.

20141011

	Cleanup: replaced cryptic macros X_SMTP() and SMTP_X() with
	more descripive names: LMTP_SMTP_SUFFIX() and VAR_LMTP_SMTP().
	Files: smtp/smtp.c, smtp/smtp.h, smtp/smtp_chat.c,
	smtp/smtp_connect.c, smtp/smtp_proto.c, smtp/smtp_sasl_glue.c,
	smtp/smtp_sasl_proto.c, smtp/smtp_tls_policy.c.

Boris Mühmer's avatar
Boris Mühmer committed
	Cleanup: missing format-string checks. Files: master/master_ent.c,
	posttls-finger/posttls-finger.c, smtpd/smtpd_proxy.c.

Boris Mühmer's avatar
Boris Mühmer committed
	Bugfix (introduced: Postfix 2.3): the PREPEND access/policy
	action added headers ABOVE Postfix's own Received: header,
	exposing Postfix's own Received: header to Milters (protocol
	violation) and hiding the PREPENDed header from Milters.
	The latter caused problems for DMARC implementations with
	SPF policy plus DKIM Milter.  PREPENDed headers are now
	added BELOW Postfix's own Received: header and remain visible
	to Milters. File: smtpd/smtpd.c.
Boris Mühmer's avatar
Boris Mühmer committed
20141013

	Cleanup: configuration file line numbers in error/warning
	messages could point to comment lines before or after the
	problem. Files: util/readlline.[hc], master/master_ent.c,
	postalias/postalias.c, postmap/postmap.c, util/dict.c,
	util/dict_cidr.c, util/dict_pcre.e, util/dict_regexp.c,
	util/dict_thash.c, postconf/postconf_master.c.

Boris Mühmer's avatar
Boris Mühmer committed
20141014

	Portability: Darwin 11.x needs to link with -lresolv. Viktor
	Dukhovni. File: makedefs.

Boris Mühmer's avatar
Boris Mühmer committed
	Documentation: ICU (unicode) library package names. File:
	proto/SMTPUTF*_README.html.

20141015

	Cleanup: master.cf line number reporting made more consistent
	with similar code elsewhere. File: master/master_ent.c.

	Backed out SMTP client TLS fallback due to multiple problems.

Boris Mühmer's avatar
Boris Mühmer committed
20141018

	Bugfix (introduced: Postfix 2.3): when a Milter inserted a
	header ABOVE Postfix's own Received: header, Postfix would
	expose its own Received: header to Milters (violating
	protocol) and hide the Milter-inserted header from Milters
	(wtf).  Files: cleanup/cleanup.h, cleanup/cleanup_message.c,
	cleanup/cleanup_state.c, milter/milter.[hc], milter/milter8.c.

	Cleanup: revert the workaround that places headers inserted
	with PREPEND actions or policy requests BELOW Postfix's own
	Received: message header. File: smtpd/smtpd.c.
Boris Mühmer's avatar
Boris Mühmer committed
20141019

	Cleanup: replace dozens and dozens of ad-hoc string constants
	with CHARS_SPACE, CHARS_COMMA_SP, and CHARS_BRACE. Files:
	52, too many files to mention here.

	Bugfix: the recently-introduced randmap, pipemap, and
	unionmap did not check for all possible forms of "empty
	list". Files: util/dict_random.c, util/dict_pipe.c,
	util/dict_union.c.

	Documentation: word smithing. File: proto/master.

	Cleanup: the last remaining remnants of the withdrawn
	smtp_tls_fallback_level feature. Files: mantools/postlink,
	global/mail_params.h.

20141021

	Per IETF TLS WG consensus, the tls_session_ticket_cipher
	default setting was changed from aes-128-cbc to aes-256-cbc.
	Take that, you quantum computer attackers! Viktor Dukhovni.
	Files: proto/postconf.proto, global/mail_params.h.

20141024

	Cleanup: added $smtpd_mumble_restrictions to the proxy_read_maps
	default setting. File: global/mail_params.h.

	Documentation: different header/body checks for MX service
	and SMTP submissions. File: proto/BUILTIN_FILTER_README.html.

	Cleanup: don't send "bare" original recipient in SMTP DSN
	attributes. File: cleanup/cleanup_addr.c.

	Feature: smtp-sink -N option to suppress DSN announcement.
	File: smtpstone/smtp-sink.c.

Boris Mühmer's avatar
Boris Mühmer committed
	Bugfix (introduced: Postfix 2,11): core dump when
Boris Mühmer's avatar
Boris Mühmer committed
	smtp_policy_maps specifies an invalid TLS level. Viktor
	Dukhovni. File: smtp/smtp_tls_policy.c.

Boris Mühmer's avatar
Boris Mühmer committed
20141103
Boris Mühmer's avatar
Boris Mühmer committed
	Logging: when a connection is closed, log the request counts
	for unimplemented STARTTLS or AUTH commands separately,
	instead of logging such commands as "unknown". File:
	smtpd/smtpd.c.
Boris Mühmer's avatar
Boris Mühmer committed
20141106
Boris Mühmer's avatar
Boris Mühmer committed
	Cleanup: set errno to ETIMEDOUT after postscreen handshake
	timeout event, so that warnings report the correct error.
	File: tlsproxy/tlsproxy.c.
Boris Mühmer's avatar
Boris Mühmer committed
20141112
Boris Mühmer's avatar
Boris Mühmer committed
	Documentation: 24 identical typos. File: proto/postconf.proto.
Boris Mühmer's avatar
Boris Mühmer committed
	Workaround: support space after "MAIL FROM:" and "RCPT TO:"
	in smtpd_command_filter examples. Reportedly, cashedge.com's
	software (used by banks) needs this (source: Claus Assmann).
	File: proto/postconf.proto.
Boris Mühmer's avatar
Boris Mühmer committed
20141117
Boris Mühmer's avatar
Boris Mühmer committed
	Cleanup: use ~0U instead of (unsigned) -1.  Based on
	complaints from the BEAM static analyzer.  Files:
	global/mynetworks.c, postconf/postconf.c, util/cidr_match.c.
Boris Mühmer's avatar
Boris Mühmer committed
	Cleanup: forgot the "do" in "do { stuff } while (0)" macros.
	Luckily, this had caused no problem. Based on complaints
	from the BEAM static analyzer. Files: util/dict_cdb.c,
	util/dict_dbm.c, util/dict_lmdb.c, util/dict_pcre.c,
	util/dict_regexp.c, util/dict_sockmap.c, util/dict_thash.c.
Boris Mühmer's avatar
Boris Mühmer committed
	Bugfix (introduced: Postfix 2.9):  lockfile descriptor leak
	after error. Based on complaints from the BEAM static
	analyzer. File: util/dict_db.c.
Boris Mühmer's avatar
Boris Mühmer committed
	Bugfix (introduced: Postfix 1.1): don't "set" the null byte
	element in the base64 and base32 decoding maps. Based on
	complaints from the BEAM static analyzer. Files: util/base64_code,
	util/base32_code.c.
Boris Mühmer's avatar
Boris Mühmer committed
	Cleanup: don't exit(0) after failing to run showq(8). Based
	on complaints from the BEAM static analyzer.  File:
	postqueue/postqueue.c.
Boris Mühmer's avatar
Boris Mühmer committed
	Bugfix: memory leak when getaddrinfo() returns a result
	that is neither IPv4 nor IPv6.  Based on complaints from
	the BEAM static analyzer.  File: smtp/smtp_addr.c.
Boris Mühmer's avatar
Boris Mühmer committed
	Cleanup: use more meaningful name for global variable so
	that it isn't shadowed by a local variable. Based on
	complaints from the BEAM static analyzer. smtpstone/smtp-sink.c.
Boris Mühmer's avatar
Boris Mühmer committed
20141119
Boris Mühmer's avatar
Boris Mühmer committed
	Cleanup: base64 test driver. File: base64_code.c.
Boris Mühmer's avatar
Boris Mühmer committed
	Cleanup: make the CONST_CHAR_STAR typedef project-wide.
	Files: global/attr_override.h, util/sys_defs.h.
Boris Mühmer's avatar
Boris Mühmer committed
	Feature: BCC action in header/body_checks and milter_header_checks.
	Files: proto/header_checks, cleanup/cleanup.h,
	cleanup/cleanup_extracted.c, cleanup/cleanup_message.c,
	cleanup/cleanup_milter.c, cleanup/cleanup_milter.in16a,
	cleanup/cleanup_milter.ref16a1, cleanup/cleanup_milter.ref16a2,
	cleanup/cleanup_milter.reg16a, cleanup/cleanup_state.c,
	cleanup/test-queue-file16, global/attr_override.h,
	global/cleanup_strflags.c, global/cleanup_user.h,
	util/sys_defs.h.
Boris Mühmer's avatar
Boris Mühmer committed
	Cleanup: don't write back-to-back queue file pointer records
	when the "add recipient" action was a NOOP (e.g., because
	the recipient was a duplicate). File: cleanup/cleanup_milter.c.
Boris Mühmer's avatar
Boris Mühmer committed
20141120
Boris Mühmer's avatar
Boris Mühmer committed
	Documentation: COMPATIBILITY_README now has "purpose of
	this document" section, plus a separate section for turning
	off the safety net. File: proto/COMPATIBILITY_README.html
Boris Mühmer's avatar
Boris Mühmer committed
20131121

	Cleanup: replace mua_mumble with msa_mumble in master.cf
	submission and smtps service parameter overrides. File:
	proto/BUILTIN_FILTER_README.html.

	Feature: "static:{ text with whitespace }".  This could be
	used as check_mumble_access static:{reject text...} at the
	end of smtpd_mumble_restrictions. Files: util/dict_static.c,
	util/Makefile.in, util/dict_static_test.ref,
	proto/DATABASE_README.html.  postconf/postconf.c (manpage).

20141126

	Feature: "inline:{key=value, { key = text with comma/space}}"
	avoids the need to create a database for just a few entries.
	Files: util/dict_inline.[hc], mantools/postlink,
	proto/DATABASE_README.html. postconf/postconf.c (manpage),
	util/dict_inline.[hc], util/dict_open.c, util/Makefile.in,
	util/dict_inline_test.ref.

	Cleanup: report nullmx DNS records as "domain does not
	accept mail", instead of "invalid DNS response".  The Postfix
	SMTP client already bounced mail for such domains, and the
	Postfix SMTP server already rejected such domains with
	reject_unknown_sender/recipient_domain. This introduces a
	new SMTP server configuration parameter nullmx_reject_code
	(default: 556).  Files: src/dns/dns_lookup.[hc], dns/Makefile,in,
	dns/nullmx_test.ref, src/smtp/smtp_addr.c, smtpd/smtpd_check.c,
	smtpd/smtpd_check_nullmx.in, smtpd/smtpd_check_nullmx.ref,
	mantools/postlink, proto/postconf.proto, smtpd/smtpd.c.

	Cleanup: added some missing libdns tests: dns/Makefile,in,
	dns/mxonly_test,ref, dns/nxdomain_test.ref

	Cleanup: libglobal "make test" had suffered from bitrot.
	Files: global/mime_state.c, global/header_body_checks.c.

20141127

	Feature: DNS reply filter, configured with smtp_dns_reply_filter,
	smtpd_dns_reply_filter, and lmtp_dns_reply_filter. Files:
	mantools/postlink, proto/postconf.proto, dns/dns.h,
	dns/dns_lookup.c, dns/dns_rr_filter.c, dns/dns_strrecord.c,
	dns/error.ref, dns/error.reg, dns/mxonly_test.ref, dns/no-a.ref,
	dns/no-a.reg, dns/no-aaaa.ref, dns/no-aaaa.reg, dns/no-mx.ref,
	dns/no-mx.reg, dns/nullmx_test.ref, dns/test_dns_lookup.c,
	global/mail_params.h, smtp/lmtp_params.c, smtp/smtp.c,
	smtp/smtp_addr.c, smtp/smtp_params.c, smtpd/smtpd.c,
	smtpd/smtpd_check.c, smtpd/smtpd_dns_filter.{in,ref}.
Boris Mühmer's avatar
Boris Mühmer committed
20141130
Boris Mühmer's avatar
Boris Mühmer committed
	Cleanup: when searching multiple DNS record types for a
	specific name, and not all queries return the same result
	status, do not blindly return the last query's rcode and
	diagnostic text.  Instead, return rcode and text that is
	consistent with the aggregate result status.
Boris Mühmer's avatar
Boris Mühmer committed
	Cleanup: un-broke several smtpd regression tests (work in
	progress, with three more to go).  Files: smtpd/smtpd_check.c,
	smtpd/smtpd_server.{in,ref}, smtpd/smtpd_exp.{in,ref}.
	smtpd/smtpd_dnswl.{in,ref}.
Boris Mühmer's avatar
Boris Mühmer committed
	Documentation: added note on Milter-signing bounces.
Boris Mühmer's avatar
Boris Mühmer committed
20141201
Boris Mühmer's avatar
Boris Mühmer committed
	Bugfix (introduced: 20141130): memory leak. File: dns_lookup.c.
Boris Mühmer's avatar
Boris Mühmer committed
	Cleanup: un-broke several dns regression tests by sorting
	getaddrinfo() results by address family. Files: dns/dns_rr_eq_sa.c,
	dns/dns_rr_eq_sa.ref, dns/dns_sa_to_rr.c, dns/dns_sa_to_rr.ref.

	Cleanup: missing #ifdef in smtpd_check test driver. File:
	smtpd/smtpd_check.c.
Boris Mühmer's avatar
Boris Mühmer committed
	Cleanup: fix google.com regexp in smtp_dns_reply_filter
	example. Viktor Dukhovni. File: proto/postconf.proto.

	Cleanup: in the ASCII form of DNS resource records, add
	space after the TLSA match-type field. Viktor Dukhovni.
	File: dns/dns_strrecord.c.

20141202

	Cleanup: to increase clarity. rename DNS result status from
	DNS_UNAVAIL to DNS_NULLMX. If someone uses the same zero-length
	name trick with some other resource type, then we will worry
	about that later.  Files: smtpd/smtpd_check.c, smtp/smtp_addr.c,
	dns/dns.h, dns/dns_lookup.c.

	Cleanup: eliminate TLS state duplication from state->tls
	to session->tls. Viktor Dukhovni. Files: src/smtp/smtp.h,
	src/smtp/smtp_connect.c, src/smtp/smtp_proto.c,
	src/smtp/smtp_reuse.c, src/smtp/smtp_session.c.

20141203

	Feature: support to match UTF8 domain names against ASCII
	names in TLS certificates. Viktor Dukhovni. Files:
	posttls-finger/posttls-finger.c, tls/tls_client.c.

20141206

	Cleanup: use (char *) only for strings, not for data.  The
	"void *" type was not fully portable during initial Postfix
	development, but we no longer have that problem. Also started
	the migration of data structure sizes/counters to ssize_t/size_t
	(the IBM Beam analyzer identified lots of unnecessary 64-bit
	to 32-bit conversions).  The transformation and verification
	were mostly mechanical with manual supervision.  Files:
	anvil/anvil.c, bounce/bounce.c, bounce/bounce_notify_util.c,
	bounce/bounce_template.c, bounce/bounce_templates.c,
	cleanup/cleanup_message.c, cleanup/cleanup_region.c,
	cleanup/cleanup_state.c, dns/dns_lookup.c, dns/dns_rr.c,
	dns/dns_rr_eq_sa.c, dns/dns_rr_to_sa.c, dns/test_dns_lookup.c,
	flush/flush.c, global/abounce.c, global/abounce.h,
	global/been_here.c, global/bounce_log.c, global/clnt_stream.c,
	global/db_common.c, global/deliver_request.c,
	global/delivered_hdr.c, global/dict_ldap.c, global/dict_mysql.c,
	global/dict_pgsql.c, global/dsn.c, global/dsn_buf.c,
	global/dsn_filter.c, global/dynamicmaps.c,
	global/header_body_checks.c, global/header_opts.c,
	global/mail_addr_crunch.c, global/mail_stream.c,
	global/mail_version.c, global/maps.c, global/mbox_open.c,
	global/mime_state.c, global/mkmap_open.c, global/msg_stats_scan.c,
	global/mypwd.c, global/post_mail.c, global/rcpt_buf.c,
	global/recipient_list.c, global/scache_clnt.c,
	global/scache_multi.c, global/scache_single.c,
	global/smtp_reply_footer.c, global/smtp_reply_footer.h,
	global/tok822_node.c, local/biff_notify.c, local/forward.c,
	local/local_expand.c, local/unknown.c, master/event_server.c,
	master/master.c, master/master_avail.c, master/master_ent.c,
	master/master_monitor.c, master/master_proto.c,
	master/master_sig.c, master/master_spawn.c, master/master_status.c,
	master/master_vars.c, master/master_wakeup.c,
	master/multi_server.c, master/single_server.c,
	master/trigger_server.c, milter/milter.c, milter/milter8.c,
	milter/milter_macros.c, oqmgr/qmgr.c, oqmgr/qmgr_active.c,
	oqmgr/qmgr_deliver.c, oqmgr/qmgr_entry.c, oqmgr/qmgr_message.c,
	oqmgr/qmgr_queue.c, oqmgr/qmgr_transport.c, pipe/pipe.c,
	postalias/postalias.c, postconf/postconf.h,
	postconf/postconf_builtin.c, postconf/postconf_edit.c,
	postconf/postconf_lookup.c, postconf/postconf_main.c,
	postconf/postconf_master.c, postconf/postconf_node.c,
	postconf/postconf_service.c, postconf/postconf_user.c,
	postmap/postmap.c, postmulti/postmulti.c, postscreen/postscreen.c,
	postscreen/postscreen.h, postscreen/postscreen_dnsbl.c,
	postscreen/postscreen_early.c, postscreen/postscreen_expand.c,
	postscreen/postscreen_haproxy.c, postscreen/postscreen_send.c,
	postscreen/postscreen_smtpd.c, postscreen/postscreen_starttls.c,
	postscreen/postscreen_state.c, posttls-finger/posttls-finger.c,
	posttls-finger/tlsmgrmem.c, proxymap/proxymap.c, qmgr/qmgr.c,
	qmgr/qmgr_active.c, qmgr/qmgr_deliver.c, qmgr/qmgr_entry.c,
	qmgr/qmgr_job.c, qmgr/qmgr_message.c, qmgr/qmgr_peer.c,
	qmgr/qmgr_queue.c, qmgr/qmgr_transport.c, qmqpd/qmqpd_peer.c,
	qmqpd/qmqpd_state.c, scache/scache.c, sendmail/sendmail.c,
	showq/showq.c, smtp/smtp_chat.c, smtp/smtp_connect.c,
	smtp/smtp_proto.c, smtp/smtp_reuse.c, smtp/smtp_session.c,
	smtp/smtp_state.c, smtp/smtp_tls_policy.c, smtpd/smtpd.c,
	smtpd/smtpd_chat.c, smtpd/smtpd_check.c, smtpd/smtpd_expand.c,
	smtpd/smtpd_expand.h, smtpd/smtpd_peer.c, smtpd/smtpd_proxy.c,
	smtpstone/qmqp-sink.c, smtpstone/qmqp-source.c,
	smtpstone/smtp-sink.c, smtpstone/smtp-source.c, tls/tls_dane.c,
	tls/tls_mgr.c, tls/tls_misc.c, tls/tls_prng_dev.c,
	tls/tls_prng_egd.c, tls/tls_prng_exch.c, tls/tls_prng_file.c,
	tls/tls_proxy_clnt.c, tls/tls_scache.c, tls/tls_server.c,
	tlsmgr/tlsmgr.c, tlsproxy/tlsproxy.c, tlsproxy/tlsproxy_state.c,
	trivial-rewrite/transport.c, trivial-rewrite/trivial-rewrite.c,
	util/argv.c, util/attr_clnt.c, util/attr_print0.c,
	util/attr_print64.c, util/attr_print_plain.c, util/attr_scan0.c,
	util/attr_scan64.c, util/attr_scan_plain.c, util/auto_clnt.c,
	util/binhash.c, util/binhash.h, util/ctable.c, util/ctable.h,
	util/dict.c, util/dict.h, util/dict_alloc.c, util/dict_cache.c,
	util/dict_cache.h, util/dict_cidr.c, util/dict_db.c,
	util/dict_ht.c, util/dict_open.c, util/dict_pcre.c,
	util/dict_regexp.c, util/dict_sockmap.c, util/dict_surrogate.c,
	util/dict_thash.c, util/edit_file.c, util/events.c,
	util/events.h, util/fifo_trigger.c, util/find_inet.c,
	util/htable.c, util/htable.h, util/inet_addr_host.c,
	util/inet_addr_list.c, util/inet_addr_local.c, util/inet_listen.c,
	util/inet_proto.c, util/inet_trigger.c, util/inet_windowsize.c,
	util/iostuff.h, util/line_wrap.c, util/line_wrap.h,
	util/mac_expand.c, util/mac_expand.h, util/mac_parse.c,
	util/mac_parse.h, util/match_list.c, util/msg_output.c,
	util/mvect.c, util/myaddrinfo.c, util/myflock.c, util/mymalloc.c,
	util/mymalloc.h, util/nbbio.c, util/nbbio.h, util/netstring.c,
	util/nvtable.c, util/nvtable.h, util/pass_trigger.c,
	util/sane_accept.c, util/sane_connect.c, util/scan_dir.c,
	util/sock_addr.c, util/stream_trigger.c, util/sys_compat.c,
	util/sys_defs.h, util/timecmp.c, util/timed_connect.c,