Chapter 18. The R (Rules) Configuration Command

Rules are like little if-then clauses[23] that exist inside rule sets, which test a given pattern against an address and change the address if the two match. The process of converting one form of an address into another is called rewriting. Most rewriting requires a sequence of many rules because an individual rule is relatively limited in what it can do.

What’s New with V8.13

There is only one change in rules in V8.13:

  • Balancing of special characters in rules is no longer checked when the configuration file is read (Section 18.1.1 [V8.13]).

Rules No Longer Need to Balance

Prior to V8.13, special characters in rules were required to balance. If they didn’t, sendmail would issue a warning and try to make them balance.

SCheck_Subject
R ----> test <----         $#discard $: discard

When a rule such as the above was read by sendmail (while parsing its configuration file), sendmail would issue the following warning:

               /path/cffile: line num:  ----> test <----... Unbalanced '>'
/path/cffile: line num:  ----> test <----... Unbalanced '<'

Thereafter, sendmail would rewrite this rule internally to become:

R <----> test ----         $#discard $: discard

Clearly, such behavior made it difficult to write rules for parsing header values and for matching unusual sorts of addresses. Beginning with V8.13 sendmail, rules are no longer automatically balanced. Instead, unbalanced expressions in rules are accepted as is, no matter what.

The characters that were special prior to V8.13 but no longer need to balance are shown in Table 18-1.

Table 18-1. Former balancing characters

Begin

End

"

"

(

)

[

]

<

>

Note that if you have composed rules that anticipated and corrected this automatic balancing, you will need to rewrite those rules beginning with V8.13.

See the description of balancing (Section 25.1.1 [V8.13]), which discusses this same change as it applies to the $>+ header operator.



[23] Actually, they can either be if-then or while-do clauses, but we gloss over that complexity for the moment.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.14.6.194