1
0
Fork 0
postfix/mantools/check-postconf-undocumented
Daniel Baumann 75cf244379
Adding upstream version 3.10.2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-21 14:19:32 +02:00

99 lines
2.8 KiB
Bash
Executable file

#!/bin/sh
# Reports parameters that exist in postconf(1) output, but that are not
# documented in the postconf(5) manpage.
LANG=C; export LANG
LC_ALL=C; export LC_ALL
bin/postconf mail_version >/dev/null || exit 1
trap 'rm -f want.tmp have.tmp stoplist.tmp 2>/dev/null' 0 1 2 3 15
# Extract parameters from the postconf(5) manpage.
awk '/^%PARAM/ { print $2 }' proto/postconf.proto | sort > have.tmp || exit 1
# Build a stoplist for postconf(1) output.
# Eliminate unwanted dynamic parameter names for delivery agents. These
# names are prefixed by their master.cf service name (they must instead
# be documented with fake names that have the "transport_" prefix; that
# is implemented later in this script).
for xport in error lmtp local relay retry smtp virtual
do
cat <<EOF
${xport}_delivery_slot_cost
${xport}_delivery_slot_discount
${xport}_delivery_slot_loan
${xport}_destination_concurrency_failed_cohort_limit
${xport}_destination_concurrency_limit
${xport}_destination_concurrency_negative_feedback
${xport}_destination_concurrency_positive_feedback
${xport}_destination_rate_delay
${xport}_destination_recipient_limit
${xport}_extra_recipient_limit
${xport}_initial_destination_concurrency
${xport}_minimum_delivery_slots
${xport}_recipient_limit
${xport}_recipient_refill_delay
${xport}_recipient_refill_limit
${xport}_transport_rate_delay
EOF
done >stoplist.tmp
# Eliminate other unwanted per-service parameters.
#cat >>stoplist.tmp <<EOF
#EOF
# Eliminate unwanted auto-generated parameters that make no sense.
cat >>stoplist.tmp <<'EOF'
lmtp_tlsrpt_enable
lmtp_tlsrpt_skip_reused_handshakes
lmtp_tlsrpt_socket_name
EOF
# Build the list of parameter names that must have an entry in the
# postconf(5) manpage.
(
# First, extract parameters from postconf(1) output, using the stock
# configurations.
bin/postconf -dHc conf | grep -F -vx -f stoplist.tmp
# Next, require that all dynamically-generated parameter names for delivery
# agents are documented as transport_mumble.
cat <<EOF
transport_delivery_slot_cost
transport_delivery_slot_discount
transport_delivery_slot_loan
transport_destination_concurrency_failed_cohort_limit
transport_destination_concurrency_limit
transport_destination_concurrency_negative_feedback
transport_destination_concurrency_positive_feedback
transport_destination_rate_delay
transport_destination_recipient_limit
transport_extra_recipient_limit
transport_initial_destination_concurrency
transport_minimum_delivery_slots
transport_recipient_limit
transport_recipient_refill_delay
transport_recipient_refill_limit
transport_transport_rate_delay
EOF
# Require that other per-service parameters are documented.
cat <<EOF
transport_time_limit
EOF
) | sort >want.tmp || exit 1
# Report parameter names that have an implementation but no documentation.
comm -23 want.tmp have.tmp