2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-23 18:37:52 +00:00

postfix-3.2-20161105

This commit is contained in:
Wietse Venema 2016-11-05 00:00:00 -05:00 committed by Viktor Dukhovni
parent 28b5cc972d
commit ead6c3334b
33 changed files with 353 additions and 21 deletions

View File

@ -22545,3 +22545,17 @@ Apologies for any names omitted.
Files: mantools/postlink, proto/MILTER_README.html, Files: mantools/postlink, proto/MILTER_README.html,
proto/postconf.proto, global/mail_params.h, smtpd/smtpd.c, proto/postconf.proto, global/mail_params.h, smtpd/smtpd.c,
smtpd/smtpd.h, smtpd/smtpd_sasl_proto.c, smtpd/smtpd_state.c. smtpd/smtpd.h, smtpd/smtpd_sasl_proto.c, smtpd/smtpd_state.c.
20161103
Cleanup: error reporting for IDNA (non-ASCII domain name)
conversion errors. File: util/midna_domain.c.
Cleanup: non-transitional conversion of UTF8 to/from ASCII
domain name labels used in DNS queries. This disables
'transitional' compatibility between IDNA2003 and IDNA2008,
and affects some corner cases such as German sz and Greek
zeta. Specify "enable_idna2003_compatibility = yes" to
restore historical behavior. Files: util/midna_domain.[hc],
mantools/postlink, global/mail_params.[hc], proto/postconf.proto,
proto/SMTPUTF8_README.html.

View File

@ -18,6 +18,7 @@ Topics covered in this document:
* SMTPUTF8 autodetection * SMTPUTF8 autodetection
* Limitations of the current implementation * Limitations of the current implementation
* Compatibility with pre-SMTPUTF8 environments * Compatibility with pre-SMTPUTF8 environments
* Compatibility with IDNA2003
* Credits * Credits
BBuuiillddiinngg PPoossttffiixx wwiitthh//wwiitthhoouutt SSMMTTPPUUTTFF88 ssuuppppoorrtt BBuuiillddiinngg PPoossttffiixx wwiitthh//wwiitthhoouutt SSMMTTPPUUTTFF88 ssuuppppoorrtt
@ -259,6 +260,18 @@ at the same time. There is no problem with RFC 2047 encodings such as "=?ISO-
8859-1?Q?text?=", because those use only characters from the ASCII 8859-1?Q?text?=", because those use only characters from the ASCII
characterset. characterset.
CCoommppaattiibbiilliittyy wwiitthh IIDDNNAA22000033
Postfix >= 3.2 by default disables the 'transitional' compatibility between
IDNA2003 and IDNA2008, when converting UTF-8 domain names to/from the ASCII
form that is used in DNS lookups. This makes Postfix behavior consistent with
current versions of the Firefox and Chrome web browsers. Specify
"enable_idna2003_compatibility = yes" to get the historical behavior.
This affects the conversion of domain names that contain for example the German
sz (ß) and the Greek zeta (ς). See http://unicode.org/cldr/utility/idna.jsp
for more examples.
CCrreeddiittss CCrreeddiittss
* May 15, 2014: Arnt Gulbrandsen posted his patch for Unicode email support. * May 15, 2014: Arnt Gulbrandsen posted his patch for Unicode email support.

View File

@ -16,6 +16,20 @@ 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 20161103
===========================================
Postfix 3.2 by default disables the 'transitional' compatibility
between IDNA2003 and IDNA2008, when converting UTF-8 domain names
to/from the ASCII form that is used in DNS lookups. This makes
Postfix behavior consistent with current versions of the Firefox
and Chrome web browsers. Specify "enable_idna2003_compatibility =
yes" for historical behavior.
This affects the conversion of, for example, the German sz and the
Greek zeta. See http://unicode.org/cldr/utility/idna.jsp for more
examples.
Major changes with snapshot 20161031 Major changes with snapshot 20161031
==================================== ====================================

View File

@ -7,7 +7,7 @@
<title>Postfix SMTPUTF8 support</title> <title>Postfix SMTPUTF8 support</title>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head> </head>
@ -44,6 +44,8 @@ header values. </p>
<li><a href="#compatibility">Compatibility with pre-SMTPUTF8 environments</a> <li><a href="#compatibility">Compatibility with pre-SMTPUTF8 environments</a>
<li><a href="#idna2003">Compatibility with IDNA2003</a>
<li><a href="#credits">Credits</a> <li><a href="#credits">Credits</a>
</ul> </ul>
@ -351,6 +353,19 @@ for Postfix to support multiple encodings at the same time. There
is no problem with <a href="http://tools.ietf.org/html/rfc2047">RFC 2047</a> encodings such as "=?ISO-8859-1?Q?text?=", is no problem with <a href="http://tools.ietf.org/html/rfc2047">RFC 2047</a> encodings such as "=?ISO-8859-1?Q?text?=",
because those use only characters from the ASCII characterset. </p> because those use only characters from the ASCII characterset. </p>
<h2> <a name="idna2003">Compatibility with IDNA2003</a> </h2>
<p> Postfix &ge; 3.2 by default disables the 'transitional'
compatibility between IDNA2003 and IDNA2008, when converting UTF-8
domain names to/from the ASCII form that is used in DNS lookups.
This makes Postfix behavior consistent with current versions of the
Firefox and Chrome web browsers. Specify "<a href="postconf.5.html#enable_idna2003_compatibility">enable_idna2003_compatibility</a>
= yes" to get the historical behavior. </p>
This affects the conversion of domain names that contain for example
the German sz (ß) and the Greek zeta (ς). See
<a href="http://unicode.org/cldr/utility/idna.jsp">http://unicode.org/cldr/utility/idna.jsp</a> for more examples. </p>
<h2> <a name="credits">Credits</a> </h2> <h2> <a name="credits">Credits</a> </h2>
<ul> <ul>

View File

@ -414,6 +414,13 @@ CLEANUP(8) CLEANUP(8)
Detect that a message requires SMTPUTF8 support for the speci- Detect that a message requires SMTPUTF8 support for the speci-
fied mail origin classes. fied mail origin classes.
Available in Postfix version 3.2 and later:
<b><a href="postconf.5.html#enable_idna2003_compatibility">enable_idna2003_compatibility</a> (no)</b>
Enable 'transitional' compatibility between IDNA2003 and
IDNA2008, when converting UTF-8 domain names to/from the ASCII
form that is used for DNS lookups.
<b>MISCELLANEOUS CONTROLS</b> <b>MISCELLANEOUS CONTROLS</b>
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b> <b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con- The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-

View File

@ -720,6 +720,13 @@ SMTP(8) SMTP(8)
Detect that a message requires SMTPUTF8 support for the speci- Detect that a message requires SMTPUTF8 support for the speci-
fied mail origin classes. fied mail origin classes.
Available in Postfix version 3.2 and later:
<b><a href="postconf.5.html#enable_idna2003_compatibility">enable_idna2003_compatibility</a> (no)</b>
Enable 'transitional' compatibility between IDNA2003 and
IDNA2008, when converting UTF-8 domain names to/from the ASCII
form that is used for DNS lookups.
<b>TROUBLE SHOOTING CONTROLS</b> <b>TROUBLE SHOOTING CONTROLS</b>
<b><a href="postconf.5.html#debug_peer_level">debug_peer_level</a> (2)</b> <b><a href="postconf.5.html#debug_peer_level">debug_peer_level</a> (2)</b>
The increment in verbose logging level when a remote client or The increment in verbose logging level when a remote client or

View File

@ -3079,6 +3079,22 @@ turned off by default with Postfix version 2.1, and is always turned on
with older Postfix versions). </p> with older Postfix versions). </p>
</DD>
<DT><b><a name="enable_idna2003_compatibility">enable_idna2003_compatibility</a>
(default: no)</b></DT><DD>
<p> Enable 'transitional' compatibility between IDNA2003 and IDNA2008,
when converting UTF-8 domain names to/from the ASCII form that is
used for DNS lookups. Specify "yes" for compatibility with Postfix
&le; 3.1 (not recommended). This affects the conversion of domain
names that contain for example the German sz and the Greek zeta.
See <a href="http://unicode.org/cldr/utility/idna.jsp">http://unicode.org/cldr/utility/idna.jsp</a> for more examples.
</p>
<p> This feature is available in Postfix 3.2 and later. </p>
</DD> </DD>
<DT><b><a name="enable_long_queue_ids">enable_long_queue_ids</a> <DT><b><a name="enable_long_queue_ids">enable_long_queue_ids</a>

View File

@ -66,6 +66,13 @@ QMQPD(8) QMQPD(8)
Detect that a message requires SMTPUTF8 support for the speci- Detect that a message requires SMTPUTF8 support for the speci-
fied mail origin classes. fied mail origin classes.
Available in Postfix version 3.2 and later:
<b><a href="postconf.5.html#enable_idna2003_compatibility">enable_idna2003_compatibility</a> (no)</b>
Enable 'transitional' compatibility between IDNA2003 and
IDNA2008, when converting UTF-8 domain names to/from the ASCII
form that is used for DNS lookups.
<b>RESOURCE AND RATE CONTROLS</b> <b>RESOURCE AND RATE CONTROLS</b>
<b><a href="postconf.5.html#line_length_limit">line_length_limit</a> (2048)</b> <b><a href="postconf.5.html#line_length_limit">line_length_limit</a> (2048)</b>
Upon input, long lines are chopped up into pieces of at most Upon input, long lines are chopped up into pieces of at most

View File

@ -720,6 +720,13 @@ SMTP(8) SMTP(8)
Detect that a message requires SMTPUTF8 support for the speci- Detect that a message requires SMTPUTF8 support for the speci-
fied mail origin classes. fied mail origin classes.
Available in Postfix version 3.2 and later:
<b><a href="postconf.5.html#enable_idna2003_compatibility">enable_idna2003_compatibility</a> (no)</b>
Enable 'transitional' compatibility between IDNA2003 and
IDNA2008, when converting UTF-8 domain names to/from the ASCII
form that is used for DNS lookups.
<b>TROUBLE SHOOTING CONTROLS</b> <b>TROUBLE SHOOTING CONTROLS</b>
<b><a href="postconf.5.html#debug_peer_level">debug_peer_level</a> (2)</b> <b><a href="postconf.5.html#debug_peer_level">debug_peer_level</a> (2)</b>
The increment in verbose logging level when a remote client or The increment in verbose logging level when a remote client or

View File

@ -596,6 +596,13 @@ SMTPD(8) SMTPD(8)
Detect that a message requires SMTPUTF8 support for the speci- Detect that a message requires SMTPUTF8 support for the speci-
fied mail origin classes. fied mail origin classes.
Available in Postfix version 3.2 and later:
<b><a href="postconf.5.html#enable_idna2003_compatibility">enable_idna2003_compatibility</a> (no)</b>
Enable 'transitional' compatibility between IDNA2003 and
IDNA2008, when converting UTF-8 domain names to/from the ASCII
form that is used for DNS lookups.
<b>VERP SUPPORT CONTROLS</b> <b>VERP SUPPORT CONTROLS</b>
With VERP style delivery, each recipient of a message receives a cus- With VERP style delivery, each recipient of a message receives a cus-
tomized copy of the message with his/her own recipient address encoded tomized copy of the message with his/her own recipient address encoded

View File

@ -169,6 +169,13 @@ VERIFY(8) VERIFY(8)
Detect that a message requires SMTPUTF8 support for the speci- Detect that a message requires SMTPUTF8 support for the speci-
fied mail origin classes. fied mail origin classes.
Available in Postfix version 3.2 and later:
<b><a href="postconf.5.html#enable_idna2003_compatibility">enable_idna2003_compatibility</a> (no)</b>
Enable 'transitional' compatibility between IDNA2003 and
IDNA2008, when converting UTF-8 domain names to/from the ASCII
form that is used for DNS lookups.
<b>MISCELLANEOUS CONTROLS</b> <b>MISCELLANEOUS CONTROLS</b>
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b> <b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con- The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-

View File

@ -1907,6 +1907,15 @@ non\-standard Errors\-To: message header, instead of the envelope
sender address (this feature is removed with Postfix version 2.2, is sender address (this feature is removed with Postfix version 2.2, is
turned off by default with Postfix version 2.1, and is always turned on turned off by default with Postfix version 2.1, and is always turned on
with older Postfix versions). with older Postfix versions).
.SH enable_idna2003_compatibility (default: no)
Enable 'transitional' compatibility between IDNA2003 and IDNA2008,
when converting UTF\-8 domain names to/from the ASCII form that is
used for DNS lookups. Specify "yes" for compatibility with Postfix
<= 3.1 (not recommended). This affects the conversion of domain
names that contain for example the German sz and the Greek zeta.
See http://unicode.org/cldr/utility/idna.jsp for more examples.
.PP
This feature is available in Postfix 3.2 and later.
.SH enable_long_queue_ids (default: no) .SH enable_long_queue_ids (default: no)
Enable long, non\-repeating, queue IDs (queue file names). The Enable long, non\-repeating, queue IDs (queue file names). The
benefit of non\-repeating names is simpler logfile analysis and benefit of non\-repeating names is simpler logfile analysis and

View File

@ -370,6 +370,12 @@ in RFC 6531..6533.
.IP "\fBsmtputf8_autodetect_classes (sendmail, verify)\fR" .IP "\fBsmtputf8_autodetect_classes (sendmail, verify)\fR"
Detect that a message requires SMTPUTF8 support for the specified Detect that a message requires SMTPUTF8 support for the specified
mail origin classes. mail origin classes.
.PP
Available in Postfix version 3.2 and later:
.IP "\fBenable_idna2003_compatibility (no)\fR"
Enable 'transitional' compatibility between IDNA2003 and IDNA2008,
when converting UTF\-8 domain names to/from the ASCII form that is
used for DNS lookups.
.SH "MISCELLANEOUS CONTROLS" .SH "MISCELLANEOUS CONTROLS"
.na .na
.nf .nf

View File

@ -78,6 +78,12 @@ in RFC 6531..6533.
.IP "\fBsmtputf8_autodetect_classes (sendmail, verify)\fR" .IP "\fBsmtputf8_autodetect_classes (sendmail, verify)\fR"
Detect that a message requires SMTPUTF8 support for the specified Detect that a message requires SMTPUTF8 support for the specified
mail origin classes. mail origin classes.
.PP
Available in Postfix version 3.2 and later:
.IP "\fBenable_idna2003_compatibility (no)\fR"
Enable 'transitional' compatibility between IDNA2003 and IDNA2008,
when converting UTF\-8 domain names to/from the ASCII form that is
used for DNS lookups.
.SH "RESOURCE AND RATE CONTROLS" .SH "RESOURCE AND RATE CONTROLS"
.na .na
.nf .nf

View File

@ -631,6 +631,12 @@ in RFC 6531..6533.
.IP "\fBsmtputf8_autodetect_classes (sendmail, verify)\fR" .IP "\fBsmtputf8_autodetect_classes (sendmail, verify)\fR"
Detect that a message requires SMTPUTF8 support for the specified Detect that a message requires SMTPUTF8 support for the specified
mail origin classes. mail origin classes.
.PP
Available in Postfix version 3.2 and later:
.IP "\fBenable_idna2003_compatibility (no)\fR"
Enable 'transitional' compatibility between IDNA2003 and IDNA2008,
when converting UTF\-8 domain names to/from the ASCII form that is
used for DNS lookups.
.SH "TROUBLE SHOOTING CONTROLS" .SH "TROUBLE SHOOTING CONTROLS"
.na .na
.nf .nf

View File

@ -538,6 +538,12 @@ Enable stricter enforcement of the SMTPUTF8 protocol.
.IP "\fBsmtputf8_autodetect_classes (sendmail, verify)\fR" .IP "\fBsmtputf8_autodetect_classes (sendmail, verify)\fR"
Detect that a message requires SMTPUTF8 support for the specified Detect that a message requires SMTPUTF8 support for the specified
mail origin classes. mail origin classes.
.PP
Available in Postfix version 3.2 and later:
.IP "\fBenable_idna2003_compatibility (no)\fR"
Enable 'transitional' compatibility between IDNA2003 and IDNA2008,
when converting UTF\-8 domain names to/from the ASCII form that is
used for DNS lookups.
.SH "VERP SUPPORT CONTROLS" .SH "VERP SUPPORT CONTROLS"
.na .na
.nf .nf

View File

@ -177,6 +177,12 @@ Preliminary SMTPUTF8 support is introduced with Postfix 3.0.
.IP "\fBsmtputf8_autodetect_classes (sendmail, verify)\fR" .IP "\fBsmtputf8_autodetect_classes (sendmail, verify)\fR"
Detect that a message requires SMTPUTF8 support for the specified Detect that a message requires SMTPUTF8 support for the specified
mail origin classes. mail origin classes.
.PP
Available in Postfix version 3.2 and later:
.IP "\fBenable_idna2003_compatibility (no)\fR"
Enable 'transitional' compatibility between IDNA2003 and IDNA2008,
when converting UTF\-8 domain names to/from the ASCII form that is
used for DNS lookups.
.SH "MISCELLANEOUS CONTROLS" .SH "MISCELLANEOUS CONTROLS"
.na .na
.nf .nf

View File

@ -1079,6 +1079,7 @@ while (<>) {
s;\bsmtputf8_enable\b;<a href="postconf.5.html#smtputf8_enable">$&</a>;g; s;\bsmtputf8_enable\b;<a href="postconf.5.html#smtputf8_enable">$&</a>;g;
s;\bstrict_smtputf8\b;<a href="postconf.5.html#strict_smtputf8">$&</a>;g; s;\bstrict_smtputf8\b;<a href="postconf.5.html#strict_smtputf8">$&</a>;g;
s;\bsmtputf8_autodetect_classes\b;<a href="postconf.5.html#smtputf8_autodetect_classes">$&</a>;g; s;\bsmtputf8_autodetect_classes\b;<a href="postconf.5.html#smtputf8_autodetect_classes">$&</a>;g;
s;\benable_idna2003_compatibility\b;<a href="postconf.5.html#enable_idna2003_compatibility">$&</a>;g;
# Service-defined parameters... # Service-defined parameters...

View File

@ -7,7 +7,7 @@
<title>Postfix SMTPUTF8 support</title> <title>Postfix SMTPUTF8 support</title>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head> </head>
@ -44,6 +44,8 @@ header values. </p>
<li><a href="#compatibility">Compatibility with pre-SMTPUTF8 environments</a> <li><a href="#compatibility">Compatibility with pre-SMTPUTF8 environments</a>
<li><a href="#idna2003">Compatibility with IDNA2003</a>
<li><a href="#credits">Credits</a> <li><a href="#credits">Credits</a>
</ul> </ul>
@ -351,6 +353,19 @@ for Postfix to support multiple encodings at the same time. There
is no problem with RFC 2047 encodings such as "=?ISO-8859-1?Q?text?=", is no problem with RFC 2047 encodings such as "=?ISO-8859-1?Q?text?=",
because those use only characters from the ASCII characterset. </p> because those use only characters from the ASCII characterset. </p>
<h2> <a name="idna2003">Compatibility with IDNA2003</a> </h2>
<p> Postfix &ge; 3.2 by default disables the 'transitional'
compatibility between IDNA2003 and IDNA2008, when converting UTF-8
domain names to/from the ASCII form that is used in DNS lookups.
This makes Postfix behavior consistent with current versions of the
Firefox and Chrome web browsers. Specify "enable_idna2003_compatibility
= yes" to get the historical behavior. </p>
This affects the conversion of domain names that contain for example
the German sz (ß) and the Greek zeta (ς). See
http://unicode.org/cldr/utility/idna.jsp for more examples. </p>
<h2> <a name="credits">Credits</a> </h2> <h2> <a name="credits">Credits</a> </h2>
<ul> <ul>

View File

@ -16704,3 +16704,15 @@ Milter support should be disabled. </p>
</pre> </pre>
<p> This feature is available in Postfix 3.2 and later. </p> <p> This feature is available in Postfix 3.2 and later. </p>
%PARAM enable_idna2003_compatibility no
<p> Enable 'transitional' compatibility between IDNA2003 and IDNA2008,
when converting UTF-8 domain names to/from the ASCII form that is
used for DNS lookups. Specify "yes" for compatibility with Postfix
&le; 3.1 (not recommended). This affects the conversion of domain
names that contain for example the German sz and the Greek zeta.
See http://unicode.org/cldr/utility/idna.jsp for more examples.
</p>
<p> This feature is available in Postfix 3.2 and later. </p>

View File

@ -340,6 +340,12 @@
/* .IP "\fBsmtputf8_autodetect_classes (sendmail, verify)\fR" /* .IP "\fBsmtputf8_autodetect_classes (sendmail, verify)\fR"
/* Detect that a message requires SMTPUTF8 support for the specified /* Detect that a message requires SMTPUTF8 support for the specified
/* mail origin classes. /* mail origin classes.
/* .PP
/* Available in Postfix version 3.2 and later:
/* .IP "\fBenable_idna2003_compatibility (no)\fR"
/* Enable 'transitional' compatibility between IDNA2003 and IDNA2008,
/* when converting UTF-8 domain names to/from the ASCII form that is
/* used for DNS lookups.
/* MISCELLANEOUS CONTROLS /* MISCELLANEOUS CONTROLS
/* .ad /* .ad
/* .fi /* .fi

View File

@ -1087,8 +1087,27 @@ dict_memcache.o: dict_memcache.c
dict_memcache.o: dict_memcache.h dict_memcache.o: dict_memcache.h
dict_memcache.o: memcache_proto.h dict_memcache.o: memcache_proto.h
dict_memcache.o: string_list.h dict_memcache.o: string_list.h
dict_mysql.o: ../../include/argv.h
dict_mysql.o: ../../include/check_arg.h
dict_mysql.o: ../../include/dict.h
dict_mysql.o: ../../include/events.h
dict_mysql.o: ../../include/find_inet.h
dict_mysql.o: ../../include/match_list.h
dict_mysql.o: ../../include/msg.h
dict_mysql.o: ../../include/myflock.h
dict_mysql.o: ../../include/mymalloc.h
dict_mysql.o: ../../include/myrand.h
dict_mysql.o: ../../include/split_at.h
dict_mysql.o: ../../include/stringops.h
dict_mysql.o: ../../include/sys_defs.h dict_mysql.o: ../../include/sys_defs.h
dict_mysql.o: ../../include/vbuf.h
dict_mysql.o: ../../include/vstream.h
dict_mysql.o: ../../include/vstring.h
dict_mysql.o: cfg_parser.h
dict_mysql.o: db_common.h
dict_mysql.o: dict_mysql.c dict_mysql.o: dict_mysql.c
dict_mysql.o: dict_mysql.h
dict_mysql.o: string_list.h
dict_pgsql.o: ../../include/argv.h dict_pgsql.o: ../../include/argv.h
dict_pgsql.o: ../../include/check_arg.h dict_pgsql.o: ../../include/check_arg.h
dict_pgsql.o: ../../include/dict.h dict_pgsql.o: ../../include/dict.h
@ -1715,6 +1734,7 @@ mail_params.o: ../../include/htable.h
mail_params.o: ../../include/inet_addr_list.h mail_params.o: ../../include/inet_addr_list.h
mail_params.o: ../../include/inet_proto.h mail_params.o: ../../include/inet_proto.h
mail_params.o: ../../include/iostuff.h mail_params.o: ../../include/iostuff.h
mail_params.o: ../../include/midna_domain.h
mail_params.o: ../../include/msg.h mail_params.o: ../../include/msg.h
mail_params.o: ../../include/msg_syslog.h mail_params.o: ../../include/msg_syslog.h
mail_params.o: ../../include/myaddrinfo.h mail_params.o: ../../include/myaddrinfo.h
@ -2494,6 +2514,7 @@ smtp_reply_footer.o: ../../include/check_arg.h
smtp_reply_footer.o: ../../include/mac_expand.h smtp_reply_footer.o: ../../include/mac_expand.h
smtp_reply_footer.o: ../../include/mac_parse.h smtp_reply_footer.o: ../../include/mac_parse.h
smtp_reply_footer.o: ../../include/msg.h smtp_reply_footer.o: ../../include/msg.h
smtp_reply_footer.o: ../../include/mymalloc.h
smtp_reply_footer.o: ../../include/sys_defs.h smtp_reply_footer.o: ../../include/sys_defs.h
smtp_reply_footer.o: ../../include/vbuf.h smtp_reply_footer.o: ../../include/vbuf.h
smtp_reply_footer.o: ../../include/vstring.h smtp_reply_footer.o: ../../include/vstring.h

View File

@ -167,6 +167,11 @@
/* IBM T.J. Watson Research /* IBM T.J. Watson Research
/* P.O. Box 704 /* P.O. Box 704
/* Yorktown Heights, NY 10598, USA /* Yorktown Heights, NY 10598, USA
/*
/* Wietse Venema
/* Google, Inc.
/* 111 8th Avenue
/* New York, NY 10011, USA
/*--*/ /*--*/
/* System library. */ /* System library. */
@ -196,6 +201,7 @@
#include <inet_proto.h> #include <inet_proto.h>
#include <vstring_vstream.h> #include <vstring_vstream.h>
#include <iostuff.h> #include <iostuff.h>
#include <midna_domain.h>
/* Global library. */ /* Global library. */
@ -652,6 +658,7 @@ void mail_params_init()
static const CONFIG_NBOOL_TABLE first_nbool_defaults[] = { static const CONFIG_NBOOL_TABLE first_nbool_defaults[] = {
/* read and process the following before opening tables. */ /* read and process the following before opening tables. */
VAR_SMTPUTF8_ENABLE, DEF_SMTPUTF8_ENABLE, &var_smtputf8_enable, VAR_SMTPUTF8_ENABLE, DEF_SMTPUTF8_ENABLE, &var_smtputf8_enable,
VAR_IDNA2003_COMPAT, DEF_IDNA2003_COMPAT, &midna_domain_transitional,
0, 0,
}; };
static const CONFIG_STR_FN_TABLE function_str_defaults[] = { static const CONFIG_STR_FN_TABLE function_str_defaults[] = {

View File

@ -3955,6 +3955,9 @@ extern int var_strict_smtputf8;
MAIL_SRC_NAME_VERIFY MAIL_SRC_NAME_VERIFY
extern char *var_smtputf8_autoclass; extern char *var_smtputf8_autoclass;
#define VAR_IDNA2003_COMPAT "enable_idna2003_compatibility"
#define DEF_IDNA2003_COMPAT "no"
/* /*
* Workaround for future incompatibility. Our implementation of RFC 2308 * Workaround for future incompatibility. Our implementation of RFC 2308
* negative reply caching relies on the promise that res_query() and * negative reply caching relies on the promise that res_query() and
@ -3976,6 +3979,11 @@ extern bool var_dns_ncache_ttl_fix;
/* IBM T.J. Watson Research /* IBM T.J. Watson Research
/* P.O. Box 704 /* P.O. Box 704
/* Yorktown Heights, NY 10598, USA /* Yorktown Heights, NY 10598, USA
/*
/* Wietse Venema
/* Google, Inc.
/* 111 8th Avenue
/* New York, NY 10011, USA
/*--*/ /*--*/
#endif #endif

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 "20161101" #define MAIL_RELEASE_DATE "20161105"
#define MAIL_VERSION_NUMBER "3.2" #define MAIL_VERSION_NUMBER "3.2"
#ifdef SNAPSHOT #ifdef SNAPSHOT

View File

@ -60,6 +60,12 @@
/* .IP "\fBsmtputf8_autodetect_classes (sendmail, verify)\fR" /* .IP "\fBsmtputf8_autodetect_classes (sendmail, verify)\fR"
/* Detect that a message requires SMTPUTF8 support for the specified /* Detect that a message requires SMTPUTF8 support for the specified
/* mail origin classes. /* mail origin classes.
/* .PP
/* Available in Postfix version 3.2 and later:
/* .IP "\fBenable_idna2003_compatibility (no)\fR"
/* Enable 'transitional' compatibility between IDNA2003 and IDNA2008,
/* when converting UTF-8 domain names to/from the ASCII form that is
/* used for DNS lookups.
/* RESOURCE AND RATE CONTROLS /* RESOURCE AND RATE CONTROLS
/* .ad /* .ad
/* .fi /* .fi

View File

@ -595,6 +595,12 @@
/* .IP "\fBsmtputf8_autodetect_classes (sendmail, verify)\fR" /* .IP "\fBsmtputf8_autodetect_classes (sendmail, verify)\fR"
/* Detect that a message requires SMTPUTF8 support for the specified /* Detect that a message requires SMTPUTF8 support for the specified
/* mail origin classes. /* mail origin classes.
/* .PP
/* Available in Postfix version 3.2 and later:
/* .IP "\fBenable_idna2003_compatibility (no)\fR"
/* Enable 'transitional' compatibility between IDNA2003 and IDNA2008,
/* when converting UTF-8 domain names to/from the ASCII form that is
/* used for DNS lookups.
/* TROUBLE SHOOTING CONTROLS /* TROUBLE SHOOTING CONTROLS
/* .ad /* .ad
/* .fi /* .fi

View File

@ -500,6 +500,12 @@
/* .IP "\fBsmtputf8_autodetect_classes (sendmail, verify)\fR" /* .IP "\fBsmtputf8_autodetect_classes (sendmail, verify)\fR"
/* Detect that a message requires SMTPUTF8 support for the specified /* Detect that a message requires SMTPUTF8 support for the specified
/* mail origin classes. /* mail origin classes.
/* .PP
/* Available in Postfix version 3.2 and later:
/* .IP "\fBenable_idna2003_compatibility (no)\fR"
/* Enable 'transitional' compatibility between IDNA2003 and IDNA2008,
/* when converting UTF-8 domain names to/from the ASCII form that is
/* used for DNS lookups.
/* VERP SUPPORT CONTROLS /* VERP SUPPORT CONTROLS
/* .ad /* .ad
/* .fi /* .fi

View File

@ -1110,6 +1110,7 @@ dict_cidr.o: dict.h
dict_cidr.o: dict_cidr.c dict_cidr.o: dict_cidr.c
dict_cidr.o: dict_cidr.h dict_cidr.o: dict_cidr.h
dict_cidr.o: msg.h dict_cidr.o: msg.h
dict_cidr.o: mvect.h
dict_cidr.o: myaddrinfo.h dict_cidr.o: myaddrinfo.h
dict_cidr.o: myflock.h dict_cidr.o: myflock.h
dict_cidr.o: mymalloc.h dict_cidr.o: mymalloc.h
@ -1750,6 +1751,8 @@ load_file.o: vbuf.h
load_file.o: vstream.h load_file.o: vstream.h
load_file.o: warn_stat.h load_file.o: warn_stat.h
load_lib.o: load_lib.c load_lib.o: load_lib.c
load_lib.o: load_lib.h
load_lib.o: msg.h
load_lib.o: sys_defs.h load_lib.o: sys_defs.h
lowercase.o: check_arg.h lowercase.o: check_arg.h
lowercase.o: lowercase.c lowercase.o: lowercase.c
@ -1831,6 +1834,7 @@ midna_domain.o: midna_domain.c
midna_domain.o: midna_domain.h midna_domain.o: midna_domain.h
midna_domain.o: msg.h midna_domain.o: msg.h
midna_domain.o: mymalloc.h midna_domain.o: mymalloc.h
midna_domain.o: name_mask.h
midna_domain.o: stringops.h midna_domain.o: stringops.h
midna_domain.o: sys_defs.h midna_domain.o: sys_defs.h
midna_domain.o: valid_hostname.h midna_domain.o: valid_hostname.h

View File

@ -7,6 +7,7 @@
/* #include <midna_domain.h> /* #include <midna_domain.h>
/* /*
/* int midna_domain_cache_size; /* int midna_domain_cache_size;
/* int midna_domain_transitional;
/* /*
/* const char *midna_domain_to_ascii( /* const char *midna_domain_to_ascii(
/* const char *name) /* const char *name)
@ -47,8 +48,10 @@
/* /*
/* midna_domain_cache_size specifies the size of the conversion /* midna_domain_cache_size specifies the size of the conversion
/* result cache. This value is used only once, upon the first /* result cache. This value is used only once, upon the first
/* lookup /* lookup request.
/* request. /*
/* midna_domain_transitional enables transitional conversion
/* between UTF8 and ASCII labels.
/* SEE ALSO /* SEE ALSO
/* http://unicode.org/reports/tr46/ Unicode IDNA Compatibility processing /* http://unicode.org/reports/tr46/ Unicode IDNA Compatibility processing
/* msg(3) diagnostics interface /* msg(3) diagnostics interface
@ -66,6 +69,11 @@
/* IBM T.J. Watson Research /* IBM T.J. Watson Research
/* P.O. Box 704 /* P.O. Box 704
/* Yorktown Heights, NY 10598, USA /* Yorktown Heights, NY 10598, USA
/*
/* Wietse Venema
/* Google, Inc.
/* 111 8th Avenue
/* New York, NY 10011, USA
/*--*/ /*--*/
/* /*
@ -86,6 +94,7 @@
#include <ctable.h> #include <ctable.h>
#include <stringops.h> #include <stringops.h>
#include <valid_hostname.h> #include <valid_hostname.h>
#include <name_mask.h>
#include <midna_domain.h> #include <midna_domain.h>
/* /*
@ -94,10 +103,73 @@
#define DEF_MIDNA_CACHE_SIZE 256 #define DEF_MIDNA_CACHE_SIZE 256
int midna_domain_cache_size = DEF_MIDNA_CACHE_SIZE; int midna_domain_cache_size = DEF_MIDNA_CACHE_SIZE;
int midna_domain_transitional = 0;
static VSTRING *midna_domain_buf; /* x.suffix */ static VSTRING *midna_domain_buf; /* x.suffix */
#define STR(x) vstring_str(x) #define STR(x) vstring_str(x)
/* midna_domain_strerror - pick one for error reporting */
static const char *midna_domain_strerror(UErrorCode error, int info_errors)
{
static LONG_NAME_MASK uidna_errors[] = {
#ifdef UIDNA_ERROR_EMPTY_LABEL
"UIDNA_ERROR_EMPTY_LABEL", UIDNA_ERROR_EMPTY_LABEL,
#endif
#ifdef UIDNA_ERROR_LABEL_TOO_LONG
"UIDNA_ERROR_LABEL_TOO_LONG", UIDNA_ERROR_LABEL_TOO_LONG,
#endif
#ifdef UIDNA_ERROR_DOMAIN_NAME_TOO_LONG
"UIDNA_ERROR_DOMAIN_NAME_TOO_LONG", UIDNA_ERROR_DOMAIN_NAME_TOO_LONG,
#endif
#ifdef UIDNA_ERROR_LEADING_HYPHEN
"UIDNA_ERROR_LEADING_HYPHEN", UIDNA_ERROR_LEADING_HYPHEN,
#endif
#ifdef UIDNA_ERROR_TRAILING_HYPHEN
"UIDNA_ERROR_TRAILING_HYPHEN", UIDNA_ERROR_TRAILING_HYPHEN,
#endif
#ifdef UIDNA_ERROR_HYPHEN_3_4
"UIDNA_ERROR_HYPHEN_3_4", UIDNA_ERROR_HYPHEN_3_4,
#endif
#ifdef UIDNA_ERROR_LEADING_COMBINING_MARK
"UIDNA_ERROR_LEADING_COMBINING_MARK", UIDNA_ERROR_LEADING_COMBINING_MARK,
#endif
#ifdef UIDNA_ERROR_DISALLOWED
"UIDNA_ERROR_DISALLOWED", UIDNA_ERROR_DISALLOWED,
#endif
#ifdef UIDNA_ERROR_PUNYCODE
"UIDNA_ERROR_PUNYCODE", UIDNA_ERROR_PUNYCODE,
#endif
#ifdef UIDNA_ERROR_LABEL_HAS_DOT
"UIDNA_ERROR_LABEL_HAS_DOT", UIDNA_ERROR_LABEL_HAS_DOT,
#endif
#ifdef UIDNA_ERROR_INVALID_ACE_LABEL
"UIDNA_ERROR_INVALID_ACE_LABEL", UIDNA_ERROR_INVALID_ACE_LABEL,
#endif
#ifdef UIDNA_ERROR_BIDI
"UIDNA_ERROR_BIDI", UIDNA_ERROR_BIDI,
#endif
#ifdef UIDNA_ERROR_CONTEXTJ
"UIDNA_ERROR_CONTEXTJ", UIDNA_ERROR_CONTEXTJ,
#endif
#ifdef UIDNA_ERROR_CONTEXTO_PUNCTUATION
"UIDNA_ERROR_CONTEXTO_PUNCTUATION", UIDNA_ERROR_CONTEXTO_PUNCTUATION,
#endif
#ifdef UIDNA_ERROR_CONTEXTO_DIGITS
"UIDNA_ERROR_CONTEXTO_DIGITS", UIDNA_ERROR_CONTEXTO_DIGITS,
#endif
0,
};
if (info_errors) {
return (str_long_name_mask_opt((VSTRING *) 0, "idna error",
uidna_errors, info_errors,
NAME_MASK_NUMBER | NAME_MASK_COMMA));
} else {
return u_errorName(error);
}
}
/* midna_domain_to_ascii_create - convert domain to ASCII */ /* midna_domain_to_ascii_create - convert domain to ASCII */
static void *midna_domain_to_ascii_create(const char *name, void *unused_context) static void *midna_domain_to_ascii_create(const char *name, void *unused_context)
@ -121,7 +193,8 @@ static void *midna_domain_to_ascii_create(const char *name, void *unused_context
/* /*
* Perform the requested conversion. * Perform the requested conversion.
*/ */
idna = uidna_openUTS46(UIDNA_DEFAULT, &error);/* XXX check error */ idna = uidna_openUTS46(midna_domain_transitional ? UIDNA_DEFAULT
: UIDNA_NONTRANSITIONAL_TO_ASCII, &error);
anl = uidna_nameToASCII_UTF8(idna, anl = uidna_nameToASCII_UTF8(idna,
name, strlen(name), name, strlen(name),
buf, sizeof(buf) - 1, buf, sizeof(buf) - 1,
@ -146,7 +219,7 @@ static void *midna_domain_to_ascii_create(const char *name, void *unused_context
return (mystrndup(buf, anl)); return (mystrndup(buf, anl));
} else { } else {
msg_warn("%s: Problem translating domain \"%.100s\" to ASCII form: %s", msg_warn("%s: Problem translating domain \"%.100s\" to ASCII form: %s",
myname, name, u_errorName(info.errors)); myname, name, midna_domain_strerror(error, info.errors));
return (0); return (0);
} }
} }
@ -174,7 +247,8 @@ static void *midna_domain_to_utf8_create(const char *name, void *unused_context)
/* /*
* Perform the requested conversion. * Perform the requested conversion.
*/ */
idna = uidna_openUTS46(UIDNA_DEFAULT, &error);/* XXX check error */ idna = uidna_openUTS46(midna_domain_transitional ? UIDNA_DEFAULT
: UIDNA_NONTRANSITIONAL_TO_UNICODE, &error);
anl = uidna_nameToUnicodeUTF8(idna, anl = uidna_nameToUnicodeUTF8(idna,
name, strlen(name), name, strlen(name),
buf, sizeof(buf) - 1, buf, sizeof(buf) - 1,
@ -195,7 +269,7 @@ static void *midna_domain_to_utf8_create(const char *name, void *unused_context)
return (mystrndup(buf, anl)); return (mystrndup(buf, anl));
} else { } else {
msg_warn("%s: Problem translating domain \"%.100s\" to UTF8 form: %s", msg_warn("%s: Problem translating domain \"%.100s\" to UTF8 form: %s",
myname, name, u_errorName(info.errors)); myname, name, midna_domain_strerror(error, info.errors));
return (0); return (0);
} }
} }

View File

@ -19,6 +19,8 @@ extern const char *midna_domain_to_utf8(const char *);
extern const char *midna_domain_suffix_to_ascii(const char *); extern const char *midna_domain_suffix_to_ascii(const char *);
extern const char *midna_domain_suffix_to_utf8(const char *); extern const char *midna_domain_suffix_to_utf8(const char *);
extern int midna_domain_cache_size;
extern int midna_domain_transitional;
/* LICENSE /* LICENSE
/* .ad /* .ad
/* .fi /* .fi
@ -30,6 +32,11 @@ extern const char *midna_domain_suffix_to_utf8(const char *);
/* IBM T.J. Watson Research /* IBM T.J. Watson Research
/* P.O. Box 704 /* P.O. Box 704
/* Yorktown Heights, NY 10598, USA /* Yorktown Heights, NY 10598, USA
/*
/* Wietse Venema
/* Google, Inc.
/* 111 8th Avenue
/* New York, NY 10011, USA
/*--*/ /*--*/
#endif #endif

View File

@ -1,11 +1,11 @@
./midna_domain: > # Upper-case greek -> lower-case greek. ./midna_domain: > # Upper-case greek -> lower-case greek.
./midna_domain: > Δημοσθένους.example.com ./midna_domain: > Δημοσθένους.example.com
./midna_domain: unconditional conversions: ./midna_domain: unconditional conversions:
./midna_domain: "Δημοσθένους.example.com" ->utf8 "δημοσθένουσ.example.com" ./midna_domain: "Δημοσθένους.example.com" ->utf8 "δημοσθένους.example.com"
./midna_domain: "Δημοσθένους.example.com" ->ascii "xn--ixanjetild6aev.example.com" ./midna_domain: "Δημοσθένους.example.com" ->ascii "xn--ixanjetild1af0a.example.com"
./midna_domain: conditional conversions: ./midna_domain: conditional conversions:
./midna_domain: "Δημοσθένους.example.com" ->ascii "xn--ixanjetild6aev.example.com" ->utf8 "δημοσθένουσ.example.com" ./midna_domain: "Δημοσθένους.example.com" ->ascii "xn--ixanjetild1af0a.example.com" ->utf8 "δημοσθένους.example.com"
./midna_domain: warning: "Δημοσθένους.example.com" != "δημοσθένουσ.example.com" ./midna_domain: warning: "Δημοσθένους.example.com" != "δημοσθένους.example.com"
./midna_domain: > # Upper-case ASCII -> lower-case ASCII. ./midna_domain: > # Upper-case ASCII -> lower-case ASCII.
./midna_domain: > Hello.example.com ./midna_domain: > Hello.example.com
./midna_domain: unconditional conversions: ./midna_domain: unconditional conversions:
@ -17,22 +17,22 @@
./midna_domain: > # Invalid LDH label('-' at begin or end). ./midna_domain: > # Invalid LDH label('-' at begin or end).
./midna_domain: > bad-.example.com ./midna_domain: > bad-.example.com
./midna_domain: unconditional conversions: ./midna_domain: unconditional conversions:
./midna_domain: warning: midna_domain_to_utf8_create: Problem translating domain "bad-.example.com" to UTF8 form: U_UNSUPPORTED_ERROR ./midna_domain: warning: midna_domain_to_utf8_create: Problem translating domain "bad-.example.com" to UTF8 form: UIDNA_ERROR_TRAILING_HYPHEN
./midna_domain: "bad-.example.com" ->utf8 "(error)" ./midna_domain: "bad-.example.com" ->utf8 "(error)"
./midna_domain: warning: midna_domain_to_ascii_create: Problem translating domain "bad-.example.com" to ASCII form: U_UNSUPPORTED_ERROR ./midna_domain: warning: midna_domain_to_ascii_create: Problem translating domain "bad-.example.com" to ASCII form: UIDNA_ERROR_TRAILING_HYPHEN
./midna_domain: "bad-.example.com" ->ascii "(error)" ./midna_domain: "bad-.example.com" ->ascii "(error)"
./midna_domain: conditional conversions: ./midna_domain: conditional conversions:
./midna_domain: > -bad.example.com ./midna_domain: > -bad.example.com
./midna_domain: unconditional conversions: ./midna_domain: unconditional conversions:
./midna_domain: warning: midna_domain_to_utf8_create: Problem translating domain "-bad.example.com" to UTF8 form: U_INDEX_OUTOFBOUNDS_ERROR ./midna_domain: warning: midna_domain_to_utf8_create: Problem translating domain "-bad.example.com" to UTF8 form: UIDNA_ERROR_LEADING_HYPHEN
./midna_domain: "-bad.example.com" ->utf8 "(error)" ./midna_domain: "-bad.example.com" ->utf8 "(error)"
./midna_domain: warning: midna_domain_to_ascii_create: Problem translating domain "-bad.example.com" to ASCII form: U_INDEX_OUTOFBOUNDS_ERROR ./midna_domain: warning: midna_domain_to_ascii_create: Problem translating domain "-bad.example.com" to ASCII form: UIDNA_ERROR_LEADING_HYPHEN
./midna_domain: "-bad.example.com" ->ascii "(error)" ./midna_domain: "-bad.example.com" ->ascii "(error)"
./midna_domain: conditional conversions: ./midna_domain: conditional conversions:
./midna_domain: > # Invalid LDH (label > 63 bytes). ./midna_domain: > # Invalid LDH (label > 63 bytes).
./midna_domain: > abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789.example.com ./midna_domain: > abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789.example.com
./midna_domain: unconditional conversions: ./midna_domain: unconditional conversions:
./midna_domain: warning: midna_domain_to_ascii_create: Problem translating domain "abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789.example.com" to ASCII form: U_MISSING_RESOURCE_ERROR ./midna_domain: warning: midna_domain_to_ascii_create: Problem translating domain "abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789.example.com" to ASCII form: UIDNA_ERROR_LABEL_TOO_LONG
./midna_domain: "abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789.example.com" ->utf8 "(error)" ./midna_domain: "abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789.example.com" ->utf8 "(error)"
./midna_domain: "abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789.example.com" ->ascii "(error)" ./midna_domain: "abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789.example.com" ->ascii "(error)"
./midna_domain: conditional conversions: ./midna_domain: conditional conversions:
@ -46,7 +46,7 @@
./midna_domain: > # Invalid name (length > 255 bytes). ./midna_domain: > # Invalid name (length > 255 bytes).
./midna_domain: > abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.example.com ./midna_domain: > abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.example.com
./midna_domain: unconditional conversions: ./midna_domain: unconditional conversions:
./midna_domain: warning: midna_domain_to_ascii_create: Problem translating domain "abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.abcdef0123456789abcdef0123456789abcde" to ASCII form: U_FILE_ACCESS_ERROR ./midna_domain: warning: midna_domain_to_ascii_create: Problem translating domain "abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.abcdef0123456789abcdef0123456789abcde" to ASCII form: UIDNA_ERROR_DOMAIN_NAME_TOO_LONG
./midna_domain: "abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.example.com" ->utf8 "(error)" ./midna_domain: "abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.example.com" ->utf8 "(error)"
./midna_domain: "abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.example.com" ->ascii "(error)" ./midna_domain: "abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567.example.com" ->ascii "(error)"
./midna_domain: conditional conversions: ./midna_domain: conditional conversions:
@ -82,8 +82,8 @@
./midna_domain: > # Bad a-label. ./midna_domain: > # Bad a-label.
./midna_domain: > xn--123456.example.com ./midna_domain: > xn--123456.example.com
./midna_domain: unconditional conversions: ./midna_domain: unconditional conversions:
./midna_domain: warning: midna_domain_to_utf8_create: Problem translating domain "xn--123456.example.com" to UTF8 form: [BOGUS UErrorCode] ./midna_domain: warning: midna_domain_to_utf8_create: Problem translating domain "xn--123456.example.com" to UTF8 form: UIDNA_ERROR_PUNYCODE
./midna_domain: "xn--123456.example.com" ->utf8 "(error)" ./midna_domain: "xn--123456.example.com" ->utf8 "(error)"
./midna_domain: warning: midna_domain_to_ascii_create: Problem translating domain "xn--123456.example.com" to ASCII form: [BOGUS UErrorCode] ./midna_domain: warning: midna_domain_to_ascii_create: Problem translating domain "xn--123456.example.com" to ASCII form: UIDNA_ERROR_PUNYCODE
./midna_domain: "xn--123456.example.com" ->ascii "(error)" ./midna_domain: "xn--123456.example.com" ->ascii "(error)"
./midna_domain: conditional conversions: ./midna_domain: conditional conversions:

View File

@ -155,6 +155,12 @@
/* .IP "\fBsmtputf8_autodetect_classes (sendmail, verify)\fR" /* .IP "\fBsmtputf8_autodetect_classes (sendmail, verify)\fR"
/* Detect that a message requires SMTPUTF8 support for the specified /* Detect that a message requires SMTPUTF8 support for the specified
/* mail origin classes. /* mail origin classes.
/* .PP
/* Available in Postfix version 3.2 and later:
/* .IP "\fBenable_idna2003_compatibility (no)\fR"
/* Enable 'transitional' compatibility between IDNA2003 and IDNA2008,
/* when converting UTF-8 domain names to/from the ASCII form that is
/* used for DNS lookups.
/* MISCELLANEOUS CONTROLS /* MISCELLANEOUS CONTROLS
/* .ad /* .ad
/* .fi /* .fi