2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-31 22:25:24 +00:00

postfix-3.2-20160925

This commit is contained in:
Wietse Venema
2016-09-25 00:00:00 -05:00
committed by Viktor Dukhovni
parent 83e6e62831
commit 39826a67e9
10 changed files with 105 additions and 13 deletions

View File

@@ -22508,3 +22508,14 @@ Apologies for any names omitted.
does not forward SASL login information to other Postfix
subsystems, and it does not receive SASL login information
in XFORWARD commands. File/smtpd/smtpd.c.
20160925
Bugfix (introduced: Postfix 2.11): changed the default MySQL
option_group value to "client" to enable the reading of
"client" option group settings in the MySQL option file.
Specify an empty option_group value to get backwards-compatible
behavior. This fixes a "not found" problem with Postfix
queries that contain UTF8-encoded non-ASCII text. Based
on a fix by John Fawcett. Files: global/dict_mysql.c,
proto/mysql_table.

View File

@@ -94,8 +94,19 @@ where_field = alias
# Don't forget the leading "AND"!
additional_conditions = AND status = 'paid'
# For Postfix 2.11 .. 3.1. This is the default as of Postfix 3.2.
option_group = client
AAddddiittiioonnaall nnootteess
Postfix 3.2 and later read [[cclliieenntt]] option group settings by default. To
disable this, specify no ooppttiioonn__ffiillee and specify "ooppttiioonn__ggrroouupp ==" (i.e. an
empty value).
Postfix 3.1 and earlier don't read [[cclliieenntt]] option group settings unless a non-
empty ooppttiioonn__ffiillee or ooppttiioonn__ggrroouupp value are specified. To enable this, specify,
for example "ooppttiioonn__ggrroouupp == cclliieenntt".
The MySQL configuration interface setup allows for multiple mysql databases:
you can use one for a virtual table, one for an access table, and one for an
aliases table if you want.

View File

@@ -16,6 +16,16 @@ specifies the release date of a stable release or snapshot release.
If you upgrade from Postfix 3.0 or earlier, read RELEASE_NOTES-3.1
before proceeding.
Incompatible changes with snapshot 20160925
===========================================
In the Postfix MySQL database client, the default option_group value
has changed to "client", to enable reading of "client" option group
settings in the MySQL options file. This fixes a "not found" problem
with Postfix queries that contain UTF8-encoded non-ASCII text.
Specify an empty option_group value (option_group =) to get
backwards-compatible behavior.
Major changes with snapshot 20160625
====================================

View File

@@ -130,10 +130,22 @@ table = mxaliases
where_field = alias
# Don't forget the leading "AND"!
additional_conditions = AND status = 'paid'
# For Postfix 2.11 .. 3.1. This is the default as of Postfix 3.2.
option_group = client
</pre>
<h2>Additional notes</h2>
<p> Postfix 3.2 and later read <b>[client]</b> option group settings
by default. To disable this, specify no <b>option_file</b> and
specify "<b>option_group =</b>" (i.e. an empty value). </p>
<p> Postfix 3.1 and earlier don't read <b>[client]</b> option group
settings unless a non-empty <b>option_file</b> or <b>option_group</b>
value are specified. To enable this, specify, for example
"<b>option_group = client</b>". </p>
<p> The MySQL configuration interface setup allows for multiple
mysql databases: you can use one for a virtual table, one for an
access table, and one for an aliases table if you want. </p>

View File

@@ -225,12 +225,24 @@ MYSQL_TABLE(5) MYSQL_TABLE(5)
<b>option_file</b>
Read options from the given file instead of the default my.cnf
location.
location. This reads options from the <b>[client]</b> option group,
optionally followed by options from the group given with
<b>option_group</b>.
This parameter is available with Postfix 2.11 and later.
<b>option_group</b>
Read options from the given group.
<b>option_group (Postfix</b> &gt;<b>=3.2: client; Postfix</b> &lt;<b>=3.1: empty)</b>
Read options from the given group of the mysql options file,
after reading options from the <b>[client]</b> group.
Postfix 3.2 and later read <b>[client]</b> option group settings by
default. To disable this specify no <b>option_file</b> and specify
"<b>option_group =</b>" (i.e. an empty value).
Postfix 3.1 and earlier don't read <b>[client]</b> option group set-
tings unless a non-empty <b>option_file</b> or <b>option_group</b> value are
specified. To enable this, specify, for example, "<b>option_group =</b>
<b>client</b>".
This parameter is available with Postfix 2.11 and later.

View File

@@ -258,11 +258,23 @@ limit to 1 ensures that lookups do not return multiple
values.
.IP "\fBoption_file\fR"
Read options from the given file instead of the default my.cnf
location.
location. This reads options from the \fB[client]\fR option
group, optionally followed by options from the group given
with \fBoption_group\fR.
.sp
This parameter is available with Postfix 2.11 and later.
.IP "\fBoption_group\fR"
Read options from the given group.
.IP "\fBoption_group (Postfix >=3.2: client; Postfix <=3.1: empty)\fR"
Read options from the given group of the mysql options file,
after reading options from the \fB[client]\fR group.
.sp
Postfix 3.2 and later read \fB[client]\fR option group
settings by default. To disable this specify no \fBoption_file\fR
and specify "\fBoption_group =\fR" (i.e. an empty value).
.sp
Postfix 3.1 and earlier don't read \fB[client]\fR option
group settings unless a non\-empty \fBoption_file\fR or
\fBoption_group\fR value are specified. To enable this,
specify, for example, "\fBoption_group = client\fR".
.sp
This parameter is available with Postfix 2.11 and later.
.IP "\fBtls_cert_file\fR"

View File

@@ -130,10 +130,22 @@ table = mxaliases
where_field = alias
# Don't forget the leading "AND"!
additional_conditions = AND status = 'paid'
# For Postfix 2.11 .. 3.1. This is the default as of Postfix 3.2.
option_group = client
</pre>
<h2>Additional notes</h2>
<p> Postfix 3.2 and later read <b>[client]</b> option group settings
by default. To disable this, specify no <b>option_file</b> and
specify "<b>option_group =</b>" (i.e. an empty value). </p>
<p> Postfix 3.1 and earlier don't read <b>[client]</b> option group
settings unless a non-empty <b>option_file</b> or <b>option_group</b>
value are specified. To enable this, specify, for example
"<b>option_group = client</b>". </p>
<p> The MySQL configuration interface setup allows for multiple
mysql databases: you can use one for a virtual table, one for an
access table, and one for an aliases table if you want. </p>

View File

@@ -246,11 +246,23 @@
# values.
# .IP "\fBoption_file\fR"
# Read options from the given file instead of the default my.cnf
# location.
# location. This reads options from the \fB[client]\fR option
# group, optionally followed by options from the group given
# with \fBoption_group\fR.
# .sp
# This parameter is available with Postfix 2.11 and later.
# .IP "\fBoption_group\fR"
# Read options from the given group.
# .IP "\fBoption_group (Postfix >=3.2: client; Postfix <=3.1: empty)\fR"
# Read options from the given group of the mysql options file,
# after reading options from the \fB[client]\fR group.
# .sp
# Postfix 3.2 and later read \fB[client]\fR option group
# settings by default. To disable this specify no \fBoption_file\fR
# and specify "\fBoption_group =\fR" (i.e. an empty value).
# .sp
# Postfix 3.1 and earlier don't read \fB[client]\fR option
# group settings unless a non-empty \fBoption_file\fR or
# \fBoption_group\fR value are specified. To enable this,
# specify, for example, "\fBoption_group = client\fR".
# .sp
# This parameter is available with Postfix 2.11 and later.
# .IP "\fBtls_cert_file\fR"

View File

@@ -565,7 +565,7 @@ static void plmysql_connect_single(DICT_MYSQL *dict_mysql, HOST *host)
msg_fatal("dict_mysql: insufficient memory");
if (dict_mysql->option_file)
mysql_options(host->db, MYSQL_READ_DEFAULT_FILE, dict_mysql->option_file);
if (dict_mysql->option_group)
if (dict_mysql->option_group && dict_mysql->option_group[0])
mysql_options(host->db, MYSQL_READ_DEFAULT_GROUP, dict_mysql->option_group);
#if defined(MYSQL_VERSION_ID) && MYSQL_VERSION_ID >= 40000
if (dict_mysql->tls_key_file || dict_mysql->tls_cert_file ||
@@ -634,7 +634,7 @@ static void mysql_parse_config(DICT_MYSQL *dict_mysql, const char *mysqlcf)
dict_mysql->dbname = cfg_get_str(p, "dbname", "", 1, 0);
dict_mysql->result_format = cfg_get_str(p, "result_format", "%s", 1, 0);
dict_mysql->option_file = cfg_get_str(p, "option_file", NULL, 0, 0);
dict_mysql->option_group = cfg_get_str(p, "option_group", NULL, 0, 0);
dict_mysql->option_group = cfg_get_str(p, "option_group", "client", 0, 0);
#if defined(MYSQL_VERSION_ID) && MYSQL_VERSION_ID >= 40000
dict_mysql->tls_key_file = cfg_get_str(p, "tls_key_file", NULL, 0, 0);
dict_mysql->tls_cert_file = cfg_get_str(p, "tls_cert_file", NULL, 0, 0);

View File

@@ -16,11 +16,11 @@
* snapshots are called a.b-yyyymmdd, where a=major release number, b=minor
* release number, c=patchlevel, and yyyymmdd is the release date:
* yyyy=year, mm=month, dd=day.
*
*
* Patches change both the patchlevel and the release date. Snapshots have no
* patchlevel; they change the release date only.
*/
#define MAIL_RELEASE_DATE "20160924"
#define MAIL_RELEASE_DATE "20160925"
#define MAIL_VERSION_NUMBER "3.2"
#ifdef SNAPSHOT