1#!/bin/sh
2
3# Reports parameters that are documented in the postconf(5 mapage),
4# but not implemented according to postconf(1) output.
5
6LANG=C; export LANG
7LC_ALL=C; export LC_ALL
8
9bin/postconf mail_version >/dev/null || exit 1
10
11trap 'rm -f have.tmp want.tmp stoplist.tmp 2>/dev/null' 0 1 2 3 15
12
13# Extract the implemented parameter names from postconf(1) output, using
14# the stock configurations.
15
16bin/postconf -dHc conf | sort >have.tmp || exit 1
17
18# Build a stoplist for postconf(5) output.
19
20# Eliminate dynamic parameter names for delivery agents. These are
21# documented as transport_mumble.
22
23cat <<EOF >stoplist.tmp
24transport_delivery_slot_cost
25transport_delivery_slot_discount
26transport_delivery_slot_loan
27transport_destination_concurrency_failed_cohort_limit
28transport_destination_concurrency_limit
29transport_destination_concurrency_negative_feedback
30transport_destination_concurrency_positive_feedback
31transport_destination_rate_delay
32transport_destination_recipient_limit
33transport_extra_recipient_limit
34transport_initial_destination_concurrency
35transport_minimum_delivery_slots
36transport_recipient_limit
37transport_recipient_refill_delay
38transport_recipient_refill_limit
39transport_transport_rate_delay
40EOF
41
42# Eliminate other per-service transport_mumble parameters.
43
44cat <<EOF >>stoplist.tmp
45transport_time_limit
46EOF
47
48# Eliminate obsolete parameters. These are no longer implemented, but
49# still documented.
50
51cat >>stoplist.tmp <<'EOF'
52authorized_verp_clients
53enable_errors_to
54extract_recipient_limit
55fallback_relay
56lmtp_cache_connection
57lmtp_per_record_deadline
58postscreen_blacklist_action
59postscreen_dnsbl_ttl
60postscreen_dnsbl_whitelist_threshold
61postscreen_whitelist_interfaces
62sender_based_routing
63smtp_per_record_deadline
64smtp_skip_4xx_greeting
65smtp_tls_cipherlist
66smtpd_per_record_deadline
67smtpd_sasl_application_name
68smtpd_tls_cipherlist
69tls_dane_digest_agility
70tls_dane_trust_anchor_digest_enable
71tlsproxy_client_level
72tlsproxy_client_policy
73tlsproxy_tls_session_cache_timeout
74virtual_maps
75EOF
76
77# Extract parameters from the postconf(5) manpage.
78
79awk '/^%PARAM/ { print $2 }' proto/postconf.proto |
80          grep -F -vx -f stoplist.tmp | sort > want.tmp || exit 1
81
82# Report names from the postconf(5) manpage that have no implementation.
83
84comm -23 want.tmp have.tmp
85