2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-22 01:49:47 +00:00

postfix-3.10-20250207

This commit is contained in:
Wietse Z Venema 2025-02-07 00:00:00 -05:00 committed by Viktor Dukhovni
parent 47ae1804cc
commit d2018d3930
13 changed files with 84 additions and 76 deletions

View File

@ -28933,4 +28933,12 @@ Apologies for any names omitted.
policy plugin, deprecated the policy_ttl attribute. File: policy plugin, deprecated the policy_ttl attribute. File:
proto/TLSRPT_README.html. proto/TLSRPT_README.html.
20250207
Performance: when a mysql: or pgsql: configuration specifies
a single host, assume that it is a load balancer and reconnect
immediately after a single failure, instead of failing all
requests for 60s. Files: global/dict_pgsql.c, global/dict_mysql.c,
proto/pgsql_table, proto/mysql_table.
Postfix 3.10 code freeze. Postfix 3.10 code freeze.

View File

@ -78,11 +78,9 @@ LDAP_TABLE(5) LDAP_TABLE(5)
server_host = ldap.example.com:1444 server_host = ldap.example.com:1444
NOTE: if "server_host" specifies one load balancer and no alter- NOTE: this client will reconnect immediately after a single
native servers, specify the load balancer multiple times in the failure, and will fail a lookup request after a second attempt
"server_host" line. Without the duplicate info, the Postfix LDAP also fails.
client would not reconnect immediately to the same load balancer
after an LDAP server failure.
With OpenLDAP, a (list of) LDAP URLs can be used to specify both With OpenLDAP, a (list of) LDAP URLs can be used to specify both
the hostname(s) and the port(s): the hostname(s) and the port(s):

View File

@ -61,11 +61,11 @@ MYSQL_TABLE(5) MYSQL_TABLE(5)
TCP you have to specify TCP you have to specify
hosts = 127.0.0.1 hosts = 127.0.0.1
NOTE: if the <b>hosts</b> setting specifies one load balancer and no NOTE: if the <b>hosts</b> setting specifies one server, this client
alternative servers, specify the load balancer multiple times. assumes that the target is a load balancer and will reconnect
Without the duplicate info, the Postfix MySQL client would not immediately after a single failure, instead of failing all
reconnect immediately to the same load balancer after a request requests temporarily. With older versions of this client, spec-
failure. ify the same server twice.
<b>user</b> <b>user</b>
@ -96,11 +96,11 @@ MYSQL_TABLE(5) MYSQL_TABLE(5)
The number of seconds that a database connection will be skipped The number of seconds that a database connection will be skipped
after an error. after an error.
NOTE: if the <b>hosts</b> setting specifies one load balancer and no NOTE: if the <b>hosts</b> setting specifies one server, this client
alternative servers, specify the load balancer multiple times. assumes that the target is a load balancer and will reconnect
Without the duplicate info, the Postfix MySQL client would not immediately after a single failure, instead of failing all
reconnect immediately to the same load balancer after a request requests temporarily. With older versions of this client, spec-
failure. ify the same server twice.
This feature is available in Postfix 3.9 and later. This feature is available in Postfix 3.9 and later.

View File

@ -65,11 +65,11 @@ PGSQL_TABLE(5) PGSQL_TABLE(5)
URI, the Postfix PostgreSQL client will ignore the <b>dbname</b>, <b>user</b>, URI, the Postfix PostgreSQL client will ignore the <b>dbname</b>, <b>user</b>,
and <b>password</b> settings for that connection. and <b>password</b> settings for that connection.
NOTE: if the <b>hosts</b> setting specifies one load balancer and no NOTE: if the <b>hosts</b> setting specifies one server, this client
alternative servers, specify the load balancer multiple times. assumes that the target is a load balancer and will reconnect
Without the duplicate info, the Postfix PostgreSQL client would immediately after a single failure, instead of failing all
not reconnect immediately to the same load balancer after a requests temporarily. With older versions of this client, spec-
request failure. ify the same server twice.
<b>user</b> <b>user</b>
@ -112,11 +112,11 @@ PGSQL_TABLE(5) PGSQL_TABLE(5)
The number of seconds that a database connection will be skipped The number of seconds that a database connection will be skipped
after an error. after an error.
NOTE: if the <b>hosts</b> setting specifies one load balancer and no NOTE: if the <b>hosts</b> setting specifies one server, this client
alternative servers, specify the load balancer multiple times. assumes that the target is a load balancer and will reconnect
Without the duplicate info, the Postfix PostgreSQL client would immediately after a single failure, instead of failing all
not reconnect immediately to the same load balancer after a requests temporarily. With older versions of this client, spec-
request failure. ify the same server twice.
This feature is available in Postfix 3.9 and later. This feature is available in Postfix 3.9 and later.

View File

@ -97,11 +97,9 @@ be possible to give each server in the list a different port
server_host = ldap.example.com:1444 server_host = ldap.example.com:1444
.fi .fi
NOTE: if "server_host" specifies one load balancer and no NOTE: this client will reconnect immediately after a single
alternative servers, specify the load balancer multiple failure, and will fail a lookup request after a second attempt
times in the "server_host" line. Without the duplicate info, also fails.
the Postfix LDAP client would not reconnect immediately to
the same load balancer after an LDAP server failure.
With OpenLDAP, a (list of) LDAP URLs can be used to specify both With OpenLDAP, a (list of) LDAP URLs can be used to specify both
the hostname(s) and the port(s): the hostname(s) and the port(s):

View File

@ -77,11 +77,11 @@ localhost over TCP you have to specify
hosts = 127.0.0.1 hosts = 127.0.0.1
.fi .fi
NOTE: if the \fBhosts\fR setting specifies one load balancer NOTE: if the \fBhosts\fR setting specifies one server, this client
and no alternative servers, specify the load balancer multiple assumes that the target is a load balancer and will reconnect
times. Without the duplicate info, the Postfix MySQL client immediately after a single failure, instead of failing all
would not reconnect immediately to the same load balancer after requests temporarily. With older versions of this client,
a request failure. specify the same server twice.
.IP "\fBuser\fR" .IP "\fBuser\fR"
.IP "\fBpassword\fR" .IP "\fBpassword\fR"
The user name and password to log into the mysql server. The user name and password to log into the mysql server.
@ -112,11 +112,11 @@ This feature is available in Postfix 3.9 and later.
The number of seconds that a database connection will be The number of seconds that a database connection will be
skipped after an error. skipped after an error.
NOTE: if the \fBhosts\fR setting specifies one load balancer NOTE: if the \fBhosts\fR setting specifies one server, this client
and no alternative servers, specify the load balancer multiple assumes that the target is a load balancer and will reconnect
times. Without the duplicate info, the Postfix MySQL client immediately after a single failure, instead of failing all
would not reconnect immediately to the same load balancer after requests temporarily. With older versions of this client,
a request failure. specify the same server twice.
This feature is available in Postfix 3.9 and later. This feature is available in Postfix 3.9 and later.
.IP "\fBquery\fR" .IP "\fBquery\fR"

View File

@ -81,11 +81,11 @@ NOTE: if the \fBhosts\fR setting specifies a PostgreSQL connection
URI, the Postfix PostgreSQL client will ignore the \fBdbname\fR, URI, the Postfix PostgreSQL client will ignore the \fBdbname\fR,
\fBuser\fR, and \fBpassword\fR settings for that connection. \fBuser\fR, and \fBpassword\fR settings for that connection.
NOTE: if the \fBhosts\fR setting specifies one load balancer NOTE: if the \fBhosts\fR setting specifies one server, this client
and no alternative servers, specify the load balancer multiple assumes that the target is a load balancer and will reconnect
times. Without the duplicate info, the Postfix PostgreSQL client immediately after a single failure, instead of failing all
would not reconnect immediately to the same load balancer after requests temporarily. With older versions of this client,
a request failure. specify the same server twice.
.IP "\fBuser\fR" .IP "\fBuser\fR"
.IP "\fBpassword\fR" .IP "\fBpassword\fR"
The user name and password to log into the pgsql server. The user name and password to log into the pgsql server.
@ -129,11 +129,11 @@ This feature is available in Postfix 3.9 and later.
The number of seconds that a database connection will be The number of seconds that a database connection will be
skipped after an error. skipped after an error.
NOTE: if the \fBhosts\fR setting specifies one load balancer NOTE: if the \fBhosts\fR setting specifies one server, this client
and no alternative servers, specify the load balancer multiple assumes that the target is a load balancer and will reconnect
times. Without the duplicate info, the Postfix PostgreSQL client immediately after a single failure, instead of failing all
would not reconnect immediately to the same load balancer after requests temporarily. With older versions of this client,
a request failure. specify the same server twice.
This feature is available in Postfix 3.9 and later. This feature is available in Postfix 3.9 and later.
.IP "\fBquery\fR" .IP "\fBquery\fR"

View File

@ -87,11 +87,9 @@
# server_host = ldap.example.com:1444 # server_host = ldap.example.com:1444
# .fi # .fi
# #
# NOTE: if "server_host" specifies one load balancer and no # NOTE: this client will reconnect immediately after a single
# alternative servers, specify the load balancer multiple # failure, and will fail a lookup request after a second attempt
# times in the "server_host" line. Without the duplicate info, # also fails.
# the Postfix LDAP client would not reconnect immediately to
# the same load balancer after an LDAP server failure.
# #
# With OpenLDAP, a (list of) LDAP URLs can be used to specify both # With OpenLDAP, a (list of) LDAP URLs can be used to specify both
# the hostname(s) and the port(s): # the hostname(s) and the port(s):

View File

@ -67,11 +67,11 @@
# hosts = 127.0.0.1 # hosts = 127.0.0.1
# .fi # .fi
# #
# NOTE: if the \fBhosts\fR setting specifies one load balancer # NOTE: if the \fBhosts\fR setting specifies one server, this client
# and no alternative servers, specify the load balancer multiple # assumes that the target is a load balancer and will reconnect
# times. Without the duplicate info, the Postfix MySQL client # immediately after a single failure, instead of failing all
# would not reconnect immediately to the same load balancer after # requests temporarily. With older versions of this client,
# a request failure. # specify the same server twice.
# .IP "\fBuser\fR" # .IP "\fBuser\fR"
# .IP "\fBpassword\fR" # .IP "\fBpassword\fR"
# The user name and password to log into the mysql server. # The user name and password to log into the mysql server.
@ -102,11 +102,11 @@
# The number of seconds that a database connection will be # The number of seconds that a database connection will be
# skipped after an error. # skipped after an error.
# #
# NOTE: if the \fBhosts\fR setting specifies one load balancer # NOTE: if the \fBhosts\fR setting specifies one server, this client
# and no alternative servers, specify the load balancer multiple # assumes that the target is a load balancer and will reconnect
# times. Without the duplicate info, the Postfix MySQL client # immediately after a single failure, instead of failing all
# would not reconnect immediately to the same load balancer after # requests temporarily. With older versions of this client,
# a request failure. # specify the same server twice.
# #
# This feature is available in Postfix 3.9 and later. # This feature is available in Postfix 3.9 and later.
# .IP "\fBquery\fR" # .IP "\fBquery\fR"

View File

@ -71,11 +71,11 @@
# URI, the Postfix PostgreSQL client will ignore the \fBdbname\fR, # URI, the Postfix PostgreSQL client will ignore the \fBdbname\fR,
# \fBuser\fR, and \fBpassword\fR settings for that connection. # \fBuser\fR, and \fBpassword\fR settings for that connection.
# #
# NOTE: if the \fBhosts\fR setting specifies one load balancer # NOTE: if the \fBhosts\fR setting specifies one server, this client
# and no alternative servers, specify the load balancer multiple # assumes that the target is a load balancer and will reconnect
# times. Without the duplicate info, the Postfix PostgreSQL client # immediately after a single failure, instead of failing all
# would not reconnect immediately to the same load balancer after # requests temporarily. With older versions of this client,
# a request failure. # specify the same server twice.
# .IP "\fBuser\fR" # .IP "\fBuser\fR"
# .IP "\fBpassword\fR" # .IP "\fBpassword\fR"
# The user name and password to log into the pgsql server. # The user name and password to log into the pgsql server.
@ -119,11 +119,11 @@
# The number of seconds that a database connection will be # The number of seconds that a database connection will be
# skipped after an error. # skipped after an error.
# #
# NOTE: if the \fBhosts\fR setting specifies one load balancer # NOTE: if the \fBhosts\fR setting specifies one server, this client
# and no alternative servers, specify the load balancer multiple # assumes that the target is a load balancer and will reconnect
# times. Without the duplicate info, the Postfix PostgreSQL client # immediately after a single failure, instead of failing all
# would not reconnect immediately to the same load balancer after # requests temporarily. With older versions of this client,
# a request failure. # specify the same server twice.
# #
# This feature is available in Postfix 3.9 and later. # This feature is available in Postfix 3.9 and later.
# .IP "\fBquery\fR" # .IP "\fBquery\fR"

View File

@ -757,6 +757,9 @@ static void mysql_parse_config(DICT_MYSQL *dict_mysql, const char *mysqlcf)
msg_info("%s: %s: no hostnames specified, defaulting to '%s'", msg_info("%s: %s: no hostnames specified, defaulting to '%s'",
myname, mysqlcf, dict_mysql->hosts->argv[0]); myname, mysqlcf, dict_mysql->hosts->argv[0]);
} }
/* Don't blacklist the load balancer! */
if (dict_mysql->hosts->argc == 1)
argv_add(dict_mysql->hosts, dict_mysql->hosts->argv[0], (char *) 0);
myfree(hosts); myfree(hosts);
} }

View File

@ -689,6 +689,9 @@ static void pgsql_parse_config(DICT_PGSQL *dict_pgsql, const char *pgsqlcf)
msg_info("%s: %s: no hostnames specified, defaulting to '%s'", msg_info("%s: %s: no hostnames specified, defaulting to '%s'",
myname, pgsqlcf, dict_pgsql->hosts->argv[0]); myname, pgsqlcf, dict_pgsql->hosts->argv[0]);
} }
/* Don't blacklist the load balancer! */
if (dict_pgsql->hosts->argc == 1)
argv_add(dict_pgsql->hosts, dict_pgsql->hosts->argv[0], (char *) 0);
myfree(hosts); myfree(hosts);
} }

View File

@ -20,7 +20,7 @@
* Patches change both the patchlevel and the release date. Snapshots have no * Patches change both the patchlevel and the release date. Snapshots have no
* patchlevel; they change the release date only. * patchlevel; they change the release date only.
*/ */
#define MAIL_RELEASE_DATE "20250206" #define MAIL_RELEASE_DATE "20250207"
#define MAIL_VERSION_NUMBER "3.10" #define MAIL_VERSION_NUMBER "3.10"
#ifdef SNAPSHOT #ifdef SNAPSHOT