12a and later)
& The bitwise AND operation (V8.12a and later)
% The modulo operator: lvalue modulo rvalue (V8.12 and later)
r Provide a random value (V8.14 and later)
a To enable these operators for V8.10 and V8.11, define _FFR_BITOPS when compiling sendmail.
Table 23-5. Operators for the arith database-map type (continued)
Operator Description
This is the Title of the Book, eMatter Edition
Copyright ?© 2007 O??™Reilly & Associates, Inc. All rights reserved.
900 | Chapter 23: The K (Database-Map) Configuration Command
The last three lines show that only decimal integer values can be used. Also note that negative
values work properly.
One example of a real use for this type of database map might be a test to see whether the
ETRN command should be run if the machine??™s load average is too high:
D{OurMaxLoad}20
Scheck_etrn
R $* $: $(math l $@ $&{load_avg} $@ ${OurMaxLoad} $) $1
R FALSE $#error $@ 4.7.1 $: "450 The load average is currently too high."
The check_etrn rule set is called by V8.10 and later sendmail eachtime the remote site
sends an ETRN command, and before any reply is sent to the remote site.
The $& prevents the {load_avg} macro (?§21.9.62 on page 832) from being interpreted too
early (when the configuration file was read). Consequently, its current value is compared to
the value in the ${OurMaxLoad} macro.
Pages:
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587