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