Home | History | Annotate | Line # | Download | only in mantools
      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 
      6 LANG=C; export LANG
      7 LC_ALL=C; export LC_ALL
      8 
      9 bin/postconf mail_version >/dev/null || exit 1
     10 
     11 trap '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 
     16 bin/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 
     23 cat <<EOF >stoplist.tmp
     24 transport_delivery_slot_cost
     25 transport_delivery_slot_discount
     26 transport_delivery_slot_loan
     27 transport_destination_concurrency_failed_cohort_limit
     28 transport_destination_concurrency_limit
     29 transport_destination_concurrency_negative_feedback
     30 transport_destination_concurrency_positive_feedback
     31 transport_destination_rate_delay
     32 transport_destination_recipient_limit
     33 transport_extra_recipient_limit
     34 transport_initial_destination_concurrency
     35 transport_minimum_delivery_slots
     36 transport_recipient_limit
     37 transport_recipient_refill_delay
     38 transport_recipient_refill_limit
     39 transport_transport_rate_delay
     40 EOF
     41 
     42 # Eliminate other per-service transport_mumble parameters.
     43 
     44 cat <<EOF >>stoplist.tmp
     45 transport_time_limit
     46 EOF
     47 
     48 # Eliminate obsolete parameters. These are no longer implemented, but
     49 # still documented.
     50 
     51 cat >>stoplist.tmp <<'EOF'
     52 authorized_verp_clients
     53 enable_errors_to
     54 extract_recipient_limit
     55 fallback_relay
     56 lmtp_cache_connection
     57 lmtp_per_record_deadline
     58 postscreen_blacklist_action
     59 postscreen_dnsbl_ttl
     60 postscreen_dnsbl_whitelist_threshold
     61 postscreen_whitelist_interfaces
     62 sender_based_routing
     63 smtp_per_record_deadline
     64 smtp_skip_4xx_greeting
     65 smtp_tls_cipherlist
     66 smtpd_per_record_deadline
     67 smtpd_sasl_application_name
     68 smtpd_tls_cipherlist
     69 tls_dane_digest_agility
     70 tls_dane_trust_anchor_digest_enable
     71 tlsproxy_client_level
     72 tlsproxy_client_policy
     73 tlsproxy_tls_session_cache_timeout
     74 virtual_maps
     75 EOF
     76 
     77 # Extract parameters from the postconf(5) manpage.
     78 
     79 awk '/^%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 
     84 comm -23 want.tmp have.tmp
     85