1#!/bin/sh
2
3# Look for missing parameter names in postlink
4
5trap 'rm -f postlink.tmp postconf.tmp check-postlink.tmp 2>/dev/null' 0 1 2 3 15
6
7# Extract parameters from postconf.5.html hyperlinks.
8
9sed -n '/[ 	].*href="postconf\.5\.html#/{
10	s/^[^#]*#//
11	s/".*//
12	p
13}' mantools/postlink | sort > postlink.tmp
14#
15# Extract parameters from postlink script. This also produces names
16# of obsolete parameters, and non-parameter names such as SMTPD
17# access restrictions and mask names.
18
19postconf -d | sed 's/ =.*//' | sort >postconf.tmp
20
21# Filter the output through a whitelist.
22
23cat >check-postlink.tmp <<'EOF'
24lmtp_body_checks
25lmtp_cname_overrides_servername
26lmtp_destination_concurrency_failed_cohort_limit
27lmtp_destination_concurrency_negative_feedback
28lmtp_destination_concurrency_positive_feedback
29lmtp_destination_rate_delay
30lmtp_header_checks
31lmtp_initial_destination_concurrency
32lmtp_mime_header_checks
33lmtp_nested_header_checks
34local_destination_concurrency_failed_cohort_limit
35local_destination_concurrency_negative_feedback
36local_destination_concurrency_positive_feedback
37local_destination_rate_delay
38local_initial_destination_concurrency
39relay_destination_concurrency_failed_cohort_limit
40relay_destination_concurrency_negative_feedback
41relay_destination_concurrency_positive_feedback
42relay_destination_rate_delay
43relay_initial_destination_concurrency
44smtp_destination_concurrency_failed_cohort_limit
45smtp_destination_concurrency_negative_feedback
46smtp_destination_concurrency_positive_feedback
47smtp_destination_rate_delay
48smtp_initial_destination_concurrency
49stress
50virtual_destination_concurrency_failed_cohort_limit
51virtual_destination_concurrency_negative_feedback
52virtual_destination_concurrency_positive_feedback
53virtual_destination_rate_delay
54virtual_initial_destination_concurrency
55EOF
56
57comm -23 postconf.tmp postlink.tmp | fgrep -vx -f check-postlink.tmp
58