From 38110d57f6c9550620169721da89077dd5aaa3fc Mon Sep 17 00:00:00 2001
From: Wietse Venema This feature is available in Postfix 3.4 and later. The default TLS security level for the Postfix tlsproxy(8)
+client. See smtp_tls_security_level for further details. This feature is available in Postfix 3.4 - 3.6. It was
+renamed to tlsproxy_client_security_level in Postfix 3.7. This feature is available in Postfix 3.4 and later. Optional lookup tables with the Postfix tlsproxy(8) client TLS
+security policy by next-hop destination. See smtp_tls_policy_maps
+for further details. This feature is available in Postfix 3.4 - 3.6. It was
+renamed to tlsproxy_client_policy_maps in Postfix 3.7.
This feature is available in Postfix 3.4 and later.
+This feature is available in Postfix 3.7 and later. It +was previously called tlsproxy_client_policy.
@@ -20032,7 +20058,8 @@ See smtp_tls_scert_verifydeThe default TLS security level for the Postfix tlsproxy(8) client. See smtp_tls_security_level for further details.
-This feature is available in Postfix 3.4 and later.
+This feature is available in Postfix 3.7 and later. It +was previously called tlsproxy_client_level.
diff --git a/postfix/html/tlsproxy.8.html b/postfix/html/tlsproxy.8.html index b78bed370..d0b8b0ea1 100644 --- a/postfix/html/tlsproxy.8.html +++ b/postfix/html/tlsproxy.8.html @@ -323,11 +323,11 @@ TLSPROXY(8) TLSPROXY(8) tlsproxy_client_scert_verifydepth ($smtp_tls_scert_verifydepth) The verification depth for remote TLS server certificates. - tlsproxy_client_security_level ($smtp_tls_security_level) + tlsproxy_client_level ($smtp_tls_security_level) The default TLS security level for the Postfix tlsproxy(8) client. - tlsproxy_client_policy_maps ($smtp_tls_policy_maps) + tlsproxy_client_policy ($smtp_tls_policy_maps) Optional lookup tables with the Postfix tlsproxy(8) client TLS security policy by next-hop destination. @@ -343,6 +343,16 @@ TLSPROXY(8) TLSPROXY(8) usage policy by next-hop destination and by remote TLS server hostname. + Available in Postfix version 3.7 and later: + + tlsproxy_client_security_level ($smtp_tls_security_level) + The default TLS security level for the Postfix tlsproxy(8) + client. + + tlsproxy_client_policy_maps ($smtp_tls_policy_maps) + Optional lookup tables with the Postfix tlsproxy(8) client TLS + security policy by next-hop destination. + OBSOLETE STARTTLS SUPPORT CONTROLS These parameters are supported for compatibility with smtpd(8) legacy parameters. diff --git a/postfix/man/man5/postconf.5 b/postfix/man/man5/postconf.5 index 649df2c60..58cfe3648 100644 --- a/postfix/man/man5/postconf.5 +++ b/postfix/man/man5/postconf.5 @@ -14185,6 +14185,12 @@ configure tlsproxy client keys and certificates is via the "tlsproxy_client_chain_files" parameter. .PP This feature is available in Postfix 3.4 and later. +.SH tlsproxy_client_level (default: $smtp_tls_security_level) +The default TLS security level for the Postfix \fBtlsproxy\fR(8) +client. See smtp_tls_security_level for further details. +.PP +This feature is available in Postfix 3.4 \- 3.6. It was +renamed to tlsproxy_client_security_level in Postfix 3.7. .SH tlsproxy_client_loglevel (default: $smtp_tls_loglevel) Enable additional Postfix \fBtlsproxy\fR(8) client logging of TLS activity. See smtp_tls_loglevel for further details. @@ -14201,12 +14207,20 @@ usage policy by next\-hop destination and by remote TLS server hostname. See smtp_tls_per_site for further details. .PP This feature is available in Postfix 3.4 and later. +.SH tlsproxy_client_policy (default: $smtp_tls_policy_maps) +Optional lookup tables with the Postfix \fBtlsproxy\fR(8) client TLS +security policy by next\-hop destination. See smtp_tls_policy_maps +for further details. +.PP +This feature is available in Postfix 3.4 \- 3.6. It was +renamed to tlsproxy_client_policy_maps in Postfix 3.7. .SH tlsproxy_client_policy_maps (default: $smtp_tls_policy_maps) Optional lookup tables with the Postfix \fBtlsproxy\fR(8) client TLS security policy by next\-hop destination. See smtp_tls_policy_maps for further details. .PP -This feature is available in Postfix 3.4 and later. +This feature is available in Postfix 3.7 and later. It +was previously called tlsproxy_client_policy. .SH tlsproxy_client_scert_verifydepth (default: $smtp_tls_scert_verifydepth) The verification depth for remote TLS server certificates. See smtp_tls_scert_verifydepth for further details. @@ -14216,7 +14230,8 @@ This feature is available in Postfix 3.4 and later. The default TLS security level for the Postfix \fBtlsproxy\fR(8) client. See smtp_tls_security_level for further details. .PP -This feature is available in Postfix 3.4 and later. +This feature is available in Postfix 3.7 and later. It +was previously called tlsproxy_client_level. .SH tlsproxy_client_use_tls (default: $smtp_use_tls) Opportunistic mode: use TLS when a remote server announces TLS support. See smtp_use_tls for further details. Use diff --git a/postfix/man/man8/tlsproxy.8 b/postfix/man/man8/tlsproxy.8 index fa1e572b5..10b447606 100644 --- a/postfix/man/man8/tlsproxy.8 +++ b/postfix/man/man8/tlsproxy.8 @@ -292,10 +292,10 @@ The name of the parameter that provides the tlsproxy_client_loglevel value. .IP "\fBtlsproxy_client_scert_verifydepth ($smtp_tls_scert_verifydepth)\fR" The verification depth for remote TLS server certificates. -.IP "\fBtlsproxy_client_security_level ($smtp_tls_security_level)\fR" +.IP "\fBtlsproxy_client_level ($smtp_tls_security_level)\fR" The default TLS security level for the Postfix \fBtlsproxy\fR(8) client. -.IP "\fBtlsproxy_client_policy_maps ($smtp_tls_policy_maps)\fR" +.IP "\fBtlsproxy_client_policy ($smtp_tls_policy_maps)\fR" Optional lookup tables with the Postfix \fBtlsproxy\fR(8) client TLS security policy by next\-hop destination. .IP "\fBtlsproxy_client_use_tls ($smtp_use_tls)\fR" @@ -307,6 +307,14 @@ Enforcement mode: require that SMTP servers use TLS encryption. Optional lookup tables with the Postfix \fBtlsproxy\fR(8) client TLS usage policy by next\-hop destination and by remote TLS server hostname. +.PP +Available in Postfix version 3.7 and later: +.IP "\fBtlsproxy_client_security_level ($smtp_tls_security_level)\fR" +The default TLS security level for the Postfix \fBtlsproxy\fR(8) +client. +.IP "\fBtlsproxy_client_policy_maps ($smtp_tls_policy_maps)\fR" +Optional lookup tables with the Postfix \fBtlsproxy\fR(8) client TLS +security policy by next\-hop destination. .SH "OBSOLETE STARTTLS SUPPORT CONTROLS" .na .nf diff --git a/postfix/mantools/check-double-install-proto-text b/postfix/mantools/check-double-install-proto-text index 4a27b84e5..bab88bc6d 100755 --- a/postfix/mantools/check-double-install-proto-text +++ b/postfix/mantools/check-double-install-proto-text @@ -4,4 +4,4 @@ LANG=C; export LANG -ls *install* proto/* | egrep -v 'stop|Makefile|html|\.proto' | xargs mantools/deroff | mantools/find-double | fgrep -vxf proto/stop.double-install-proto-text +(ls *install* proto/* | egrep -v 'stop|Makefile|html|\.proto' | xargs mantools/deroff; cat RELEASE_NOTES) | mantools/find-double | fgrep -vxf proto/stop.double-install-proto-text diff --git a/postfix/mantools/check-postfix-files b/postfix/mantools/check-postfix-files new file mode 100755 index 000000000..ea85d4058 --- /dev/null +++ b/postfix/mantools/check-postfix-files @@ -0,0 +1,32 @@ +#!/bin/sh + +# Reports missing documentation file names in postfix-files. For +# simplicity and maintainability this looks at file basenames only. +# The odds that a file is installed in the wrong place are small. + +trap 'rm -f expected.tmp actual.tmp' 0 1 2 3 15 + +LANG=C; export LANG +LC_ALL=C; export LC_ALL + +# Extract file basenames from postfix-files. + +awk -F: ' + BEGIN { want["f"] = want["h"] = want["l"] = want["p"] = 1 } + want[$2] == 1 { n = split($1, path, "/"); print path[n] } +' conf/postfix-files | sort >actual.tmp + +# Create a list of expected names, excluding files that aren't installed. + +(ls man/man?/* html/*.html |sed 's/.*\///' | egrep -v '^makedefs.1 +^posttls-finger.1 +^qmqp-sink.1 +^qmqp-source.1 +^qshape.1 +^smtp-sink.1 +^smtp-source.1' +ls README_FILES) | sort >expected.tmp + +# Compare the expected names against the names in postfix-files. + +comm -23 expected.tmp actual.tmp diff --git a/postfix/mantools/check-postlink b/postfix/mantools/check-postlink index cdb7e079b..21472d64e 100755 --- a/postfix/mantools/check-postlink +++ b/postfix/mantools/check-postlink @@ -1,11 +1,11 @@ #!/bin/sh -# Look for missing parameter names in postlink +# Reports parameter names that have no postlink rules. LANG=C; export LANG LC_ALL=C; export LC_ALL -trap 'rm -f postlink.tmp postconf.tmp check-postlink.tmp 2>/dev/null' 0 1 2 3 15 +trap 'rm -f postlink.tmp postconf.tmp stoplist.tmp 2>/dev/null' 0 1 2 3 15 # Extract parameters from postlink script. This also produces names # of obsolete parameters, and non-parameter names such as SMTPD @@ -17,124 +17,41 @@ sed -n '/[ ].*href="postconf\.5\.html#/{ p }' mantools/postlink | sort > postlink.tmp -# Extract parameters from postconf output. +# Extract parameters from postconf output, using the stock configurations. bin/postconf -dHc conf | sort >postconf.tmp -# Filter the output through a whitelist. +# Filter the postconf output through a stoplist. First, parameter +# names prefixed by their service name. -cat >check-postlink.tmp <<'EOF' -error_delivery_slot_cost -error_delivery_slot_discount -error_delivery_slot_loan -error_destination_concurrency_failed_cohort_limit -error_destination_concurrency_limit -error_destination_concurrency_negative_feedback -error_destination_concurrency_positive_feedback -error_destination_rate_delay -error_destination_recipient_limit -error_extra_recipient_limit -error_initial_destination_concurrency -error_minimum_delivery_slots -error_recipient_limit -error_recipient_refill_delay -error_recipient_refill_limit -error_transport_rate_delay -lmtp_body_checks -lmtp_cname_overrides_servername -lmtp_delivery_slot_cost -lmtp_delivery_slot_discount -lmtp_delivery_slot_loan -lmtp_destination_concurrency_failed_cohort_limit -lmtp_destination_concurrency_negative_feedback -lmtp_destination_concurrency_positive_feedback -lmtp_destination_rate_delay -lmtp_extra_recipient_limit -lmtp_header_checks -lmtp_initial_destination_concurrency -lmtp_mime_header_checks -lmtp_minimum_delivery_slots -lmtp_nested_header_checks -lmtp_recipient_limit -lmtp_recipient_refill_delay -lmtp_recipient_refill_limit -lmtp_transport_rate_delay -local_delivery_slot_cost -local_delivery_slot_discount -local_delivery_slot_loan -local_destination_concurrency_failed_cohort_limit -local_destination_concurrency_negative_feedback -local_destination_concurrency_positive_feedback -local_destination_rate_delay -local_extra_recipient_limit -local_initial_destination_concurrency -local_minimum_delivery_slots -local_recipient_limit -local_recipient_refill_delay -local_recipient_refill_limit -local_transport_rate_delay -relay_delivery_slot_cost -relay_delivery_slot_discount -relay_delivery_slot_loan -relay_destination_concurrency_failed_cohort_limit -relay_destination_concurrency_negative_feedback -relay_destination_concurrency_positive_feedback -relay_destination_rate_delay -relay_extra_recipient_limit -relay_initial_destination_concurrency -relay_minimum_delivery_slots -relay_recipient_limit -relay_recipient_refill_delay -relay_recipient_refill_limit -relay_transport_rate_delay -retry_delivery_slot_cost -retry_delivery_slot_discount -retry_delivery_slot_loan -retry_destination_concurrency_failed_cohort_limit -retry_destination_concurrency_limit -retry_destination_concurrency_negative_feedback -retry_destination_concurrency_positive_feedback -retry_destination_rate_delay -retry_destination_recipient_limit -retry_extra_recipient_limit -retry_initial_destination_concurrency -retry_minimum_delivery_slots -retry_recipient_limit -retry_recipient_refill_delay -retry_recipient_refill_limit -retry_transport_rate_delay -smtp_delivery_slot_cost -smtp_delivery_slot_discount -smtp_delivery_slot_loan -smtp_destination_concurrency_failed_cohort_limit -smtp_destination_concurrency_negative_feedback -smtp_destination_concurrency_positive_feedback -smtp_destination_rate_delay -smtp_extra_recipient_limit -smtp_initial_destination_concurrency -smtp_minimum_delivery_slots -smtp_recipient_limit -smtp_recipient_refill_delay -smtp_recipient_refill_limit -smtp_transport_rate_delay +for xport in error lmtp local relay retry smtp virtual +do + cat <This feature is available in Postfix 3.4 and later.
+%PARAM tlsproxy_client_level $smtp_tls_security_level + +The default TLS security level for the Postfix tlsproxy(8) +client. See smtp_tls_security_level for further details.
+ +This feature is available in Postfix 3.4 - 3.6. It was +renamed to tlsproxy_client_security_level in Postfix 3.7.
+ %PARAM tlsproxy_client_security_level $smtp_tls_security_levelThe default TLS security level for the Postfix tlsproxy(8) client. See smtp_tls_security_level for further details.
-This feature is available in Postfix 3.4 and later.
+This feature is available in Postfix 3.7 and later. It +was previously called tlsproxy_client_level.
%PARAM tlsproxy_client_per_site $smtp_tls_per_site @@ -17508,13 +17517,23 @@ hostname. See smtp_tls_per_site for further details.This feature is available in Postfix 3.4 and later.
+%PARAM tlsproxy_client_policy $smtp_tls_policy_maps + +Optional lookup tables with the Postfix tlsproxy(8) client TLS +security policy by next-hop destination. See smtp_tls_policy_maps +for further details.
+ +This feature is available in Postfix 3.4 - 3.6. It was +renamed to tlsproxy_client_policy_maps in Postfix 3.7.
+ %PARAM tlsproxy_client_policy_maps $smtp_tls_policy_mapsOptional lookup tables with the Postfix tlsproxy(8) client TLS security policy by next-hop destination. See smtp_tls_policy_maps for further details.
-This feature is available in Postfix 3.4 and later.
+This feature is available in Postfix 3.7 and later. It +was previously called tlsproxy_client_policy.
%PARAM tlsproxy_client_use_tls $smtp_use_tls diff --git a/postfix/proto/stop b/postfix/proto/stop index 1679528a3..930c11e35 100644 --- a/postfix/proto/stop +++ b/postfix/proto/stop @@ -1551,3 +1551,7 @@ proto ICMP NORANDOMIZE wallclock +BDAT +IPL +yyyy +yyyymmdd diff --git a/postfix/src/global/mail_params.h b/postfix/src/global/mail_params.h index 4b530648a..01cce33ce 100644 --- a/postfix/src/global/mail_params.h +++ b/postfix/src/global/mail_params.h @@ -2501,7 +2501,8 @@ extern int var_local_rcpt_code; " $" VAR_LOCAL_LOGIN_SND_MAPS \ " $" VAR_PSC_REJ_FTR_MAPS \ " $" VAR_SMTPD_REJ_FTR_MAPS \ - " $" VAR_TLS_SERVER_SNI_MAPS + " $" VAR_TLS_SERVER_SNI_MAPS \ + " $" VAR_TLSP_CLNT_POLICY extern char *var_proxy_read_maps; #define VAR_PROXY_WRITE_MAPS "proxy_write_maps" @@ -4065,16 +4066,20 @@ extern bool var_tlsp_clnt_use_tls; #define DEF_TLSP_CLNT_ENFORCE_TLS "$" VAR_SMTP_ENFORCE_TLS extern bool var_tlsp_clnt_enforce_tls; -#define VAR_TLSP_CLNT_LEVEL "tlsproxy_client_level" -#define DEF_TLSP_CLNT_LEVEL "$" VAR_SMTP_TLS_LEVEL +/* Migrate an incorrect name. */ +#define OBS_TLSP_CLNT_LEVEL "tlsproxy_client_level" +#define VAR_TLSP_CLNT_LEVEL "tlsproxy_client_security_level" +#define DEF_TLSP_CLNT_LEVEL "${" OBS_TLSP_CLNT_LEVEL ":$" VAR_SMTP_TLS_LEVEL "}" extern char *var_tlsp_clnt_level; #define VAR_TLSP_CLNT_PER_SITE "tlsproxy_client_per_site" #define DEF_TLSP_CLNT_PER_SITE "$" VAR_SMTP_TLS_PER_SITE extern char *var_tlsp_clnt_per_site; -#define VAR_TLSP_CLNT_POLICY "tlsproxy_client_policy" -#define DEF_TLSP_CLNT_POLICY "$" VAR_SMTP_TLS_POLICY +/* Migrate an incorrect name. */ +#define OBS_TLSP_CLNT_POLICY "tlsproxy_client_policy" +#define VAR_TLSP_CLNT_POLICY "tlsproxy_client_policy_maps" +#define DEF_TLSP_CLNT_POLICY "${" OBS_TLSP_CLNT_POLICY ":$" VAR_SMTP_TLS_POLICY "}" extern char *var_tlsp_clnt_policy; /* diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h index ff5c7013c..4d5bd1f72 100644 --- a/postfix/src/global/mail_version.h +++ b/postfix/src/global/mail_version.h @@ -20,7 +20,7 @@ * Patches change both the patchlevel and the release date. Snapshots have no * patchlevel; they change the release date only. */ -#define MAIL_RELEASE_DATE "20220117" +#define MAIL_RELEASE_DATE "20220121" #define MAIL_VERSION_NUMBER "3.7" #ifdef SNAPSHOT diff --git a/postfix/src/postconf/postconf_builtin.c b/postfix/src/postconf/postconf_builtin.c index f430568bb..1fc337c5f 100644 --- a/postfix/src/postconf/postconf_builtin.c +++ b/postfix/src/postconf/postconf_builtin.c @@ -148,6 +148,8 @@ static const CONFIG_STR_TABLE pcf_legacy_str_table[] = { {"lmtp_per_record_deadline", ""}, {"smtp_per_record_deadline", ""}, {"smtpd_per_record_deadline", ""}, + {"tlsproxy_client_level", ""}, + {"tlsproxy_client_policy", ""}, 0, }; diff --git a/postfix/src/smtp/smtp.h b/postfix/src/smtp/smtp.h index 137ccc802..742ed300c 100644 --- a/postfix/src/smtp/smtp.h +++ b/postfix/src/smtp/smtp.h @@ -191,6 +191,12 @@ typedef struct SMTP_STATE { * assume per-server debug_peer support. */ int debug_peer_per_nexthop; + + /* + * One-bit counters to avoid logging the same warning multiple times per + * delivery request. + */ + int logged_line_length_limit:1; } SMTP_STATE; /* diff --git a/postfix/src/smtp/smtp_proto.c b/postfix/src/smtp/smtp_proto.c index 650b5306f..2ceb0f35c 100644 --- a/postfix/src/smtp/smtp_proto.c +++ b/postfix/src/smtp/smtp_proto.c @@ -1194,8 +1194,11 @@ static void smtp_text_out(void *context, int rec_type, * multibyte characters can span queue file records, for * example if line_length_limit == smtp_line_length_limit. */ - msg_info("%s: breaking line > %d bytes with