MESSAGE
DATE | 2014-09-22 |
FROM | Ruben Safir
|
SUBJECT | Subject: [NYLXS - HANGOUT] [wietse@porcupine.org: Postfix syntax overhaul, snapshot 20140921]
|
----- Forwarded message from Wietse Venema -----
Date: Sun, 21 Sep 2014 17:19:47 -0400 (EDT) From: Wietse Venema To: Postfix users Subject: Postfix syntax overhaul, snapshot 20140921 X-Mailer: ELM [version 2.4ME+ PL124d (25)]
Postfix snapshot 20140921 introduces small improvements in configuration file syntax without breaking compatibility (except one: Postfix will complain if you have "{" without matching "}").
These changes may not look like a big deal, but it was getting really hard to add some functionality without running into limitations.
Goals of the current effort are:
- Maintain backwards compatibility. Do not break existing configuration files.
- Keep it simple. The changes below introduce "{" and "}" to group related text together. This will require some changes to tools that parse Postfix files, but the changes are not dificult.
First, two changes that have been implemented sofar.
- In preparation for configurable mail headers and logging, new main.cf support for if-then-else expressions:
${name?{text1}:{text2}}
and for logical expressions:
${{text1}=={text2}?{text3}:{text4}} ${{text1}!={text2}?{text3}:{text4}}
The old syntax still works exactly as before.
This change involves just one Postfix source file, and has been verified with a large number of test cases.
- The syntax of pipemap and randmap has improved. Postfix now uses pipemap:{map1, ..., mapN} and randmap:{result1, ..., resultN}.
The old syntax was just too ugly. It is no longer supported.
This code change affects about a dozen files, but the changes are simple.
As long as the code changes are simple, I'll try to implement more improvements along the same lines before Postfix 2.12 becomes frozen. Examples of such improvements are:
- Milter clients and policy clients with non-default settings. The old syntax works just as before but does not provide the new functionality.
smtpd_milters = ..., {inet:host:port, timeout=xxx, default_action=yyy}, ...
smtpd_mumble_restrictions = ..., check_policy_service {inet:host:port, timeout=xxx}, ...
- Parameter overrides in master.cf that look the same as main.cf settings. The old syntax still works but does not support spaces around '=' or in parameter values.
-o { parameter = value ... } ...other Postfix daemon arguments...
These are just a few examples. Old features will keep working; only some new features like pipemap: will require the new syntax.
Wietse
----- End forwarded message -----
|
|