2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-09-03 15:45: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 does not forward SASL login information to other Postfix
subsystems, and it does not receive SASL login information subsystems, and it does not receive SASL login information
in XFORWARD commands. File/smtpd/smtpd.c. 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"! # Don't forget the leading "AND"!
additional_conditions = AND status = 'paid' 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 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: 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 you can use one for a virtual table, one for an access table, and one for an
aliases table if you want. 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 If you upgrade from Postfix 3.0 or earlier, read RELEASE_NOTES-3.1
before proceeding. 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 Major changes with snapshot 20160625
==================================== ====================================

View File

@@ -130,10 +130,22 @@ table = mxaliases
where_field = alias where_field = alias
# Don't forget the leading "AND"! # Don't forget the leading "AND"!
additional_conditions = AND status = 'paid' additional_conditions = AND status = 'paid'
# For Postfix 2.11 .. 3.1. This is the default as of Postfix 3.2.
option_group = client
</pre> </pre>
<h2>Additional notes</h2> <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 <p> The MySQL configuration interface setup allows for multiple
mysql databases: you can use one for a virtual table, one for an 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> 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> <b>option_file</b>
Read options from the given file instead of the default my.cnf 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. This parameter is available with Postfix 2.11 and later.
<b>option_group</b> <b>option_group (Postfix</b> &gt;<b>=3.2: client; Postfix</b> &lt;<b>=3.1: empty)</b>
Read options from the given group. 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. 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. values.
.IP "\fBoption_file\fR" .IP "\fBoption_file\fR"
Read options from the given file instead of the default my.cnf 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 .sp
This parameter is available with Postfix 2.11 and later. This parameter is available with Postfix 2.11 and later.
.IP "\fBoption_group\fR" .IP "\fBoption_group (Postfix >=3.2: client; Postfix <=3.1: empty)\fR"
Read options from the given group. 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 .sp
This parameter is available with Postfix 2.11 and later. This parameter is available with Postfix 2.11 and later.
.IP "\fBtls_cert_file\fR" .IP "\fBtls_cert_file\fR"

View File

@@ -130,10 +130,22 @@ table = mxaliases
where_field = alias where_field = alias
# Don't forget the leading "AND"! # Don't forget the leading "AND"!
additional_conditions = AND status = 'paid' additional_conditions = AND status = 'paid'
# For Postfix 2.11 .. 3.1. This is the default as of Postfix 3.2.
option_group = client
</pre> </pre>
<h2>Additional notes</h2> <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 <p> The MySQL configuration interface setup allows for multiple
mysql databases: you can use one for a virtual table, one for an 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> access table, and one for an aliases table if you want. </p>

View File

@@ -246,11 +246,23 @@
# values. # values.
# .IP "\fBoption_file\fR" # .IP "\fBoption_file\fR"
# Read options from the given file instead of the default my.cnf # 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 # .sp
# This parameter is available with Postfix 2.11 and later. # This parameter is available with Postfix 2.11 and later.
# .IP "\fBoption_group\fR" # .IP "\fBoption_group (Postfix >=3.2: client; Postfix <=3.1: empty)\fR"
# Read options from the given group. # 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 # .sp
# This parameter is available with Postfix 2.11 and later. # This parameter is available with Postfix 2.11 and later.
# .IP "\fBtls_cert_file\fR" # .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"); msg_fatal("dict_mysql: insufficient memory");
if (dict_mysql->option_file) if (dict_mysql->option_file)
mysql_options(host->db, MYSQL_READ_DEFAULT_FILE, 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); mysql_options(host->db, MYSQL_READ_DEFAULT_GROUP, dict_mysql->option_group);
#if defined(MYSQL_VERSION_ID) && MYSQL_VERSION_ID >= 40000 #if defined(MYSQL_VERSION_ID) && MYSQL_VERSION_ID >= 40000
if (dict_mysql->tls_key_file || dict_mysql->tls_cert_file || 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->dbname = cfg_get_str(p, "dbname", "", 1, 0);
dict_mysql->result_format = cfg_get_str(p, "result_format", "%s", 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_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 #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_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); 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 * snapshots are called a.b-yyyymmdd, where a=major release number, b=minor
* release number, c=patchlevel, and yyyymmdd is the release date: * release number, c=patchlevel, and yyyymmdd is the release date:
* yyyy=year, mm=month, dd=day. * yyyy=year, mm=month, dd=day.
* *
* 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 "20160924" #define MAIL_RELEASE_DATE "20160925"
#define MAIL_VERSION_NUMBER "3.2" #define MAIL_VERSION_NUMBER "3.2"
#ifdef SNAPSHOT #ifdef SNAPSHOT