2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-22 09:57:34 +00:00

postfix-3.9-20240213

This commit is contained in:
Wietse Z Venema 2024-02-13 00:00:00 -05:00 committed by Viktor Dukhovni
parent 403f8ce4a1
commit 2f77adce4e
22 changed files with 496 additions and 459 deletions

View File

@ -27841,8 +27841,36 @@ Apologies for any names omitted.
global/mail_params.h. global/mail_params.h.
Performance: eliminate worst-case behavior where the queue Performance: eliminate worst-case behavior where the queue
manager defers delivery to all destinations over a specific manager deferred delivery to all destinations over a specific
delivery transport, after only a single delivery agent delivery transport, after only a single delivery agent
failure. The scheduler now throttles one destination, and failure. The scheduler now throttles one destination, and
allows deliveries to other destinations to keep making allows deliveries to other destinations to keep making
progress. Files: *qmgr/qmgr_deliver.c. progress. Files: *qmgr/qmgr_deliver.c.
20240210
Documentation: introductory text for SMTP and LMTP lookup
strategies. File: smtp/smtp.c.
20240211
Documentation: updated the text for the new "notes=" attribute
in SMTP server "disconnect" logging. File: proto/postconf.proto.
20240212
Documentation: emphasize that email address patterns and
host name/address patterns for indexed etc. files are really
for indexed etc. files. File: proto/access.
Documentation: mail_date(3) manpage. File: global/mail_date.c.
20240213
Tests: updated tests that had suffered from bit rot. Files:
bounce/with-msgid-with-filter-no-thread.ref,
bounce/with-msgid-with-filter-with-thread.ref,
src/dns/mxonly_test.ref, dns/no-mx.ref.
Logging: indicate which (usually, substring) lookups are
skipped. File: global/maps.c.

View File

@ -59,7 +59,7 @@
# line that starts with whitespace continues a logi- # line that starts with whitespace continues a logi-
# cal line. # cal line.
# #
# EMAIL ADDRESS PATTERNS # EMAIL ADDRESS PATTERNS IN INDEXED TABLES
# With lookups from indexed files such as DB or DBM, or from # With lookups from indexed files such as DB or DBM, or from
# networked tables such as NIS, LDAP or SQL, patterns are # networked tables such as NIS, LDAP or SQL, patterns are
# tried in the order as listed below: # tried in the order as listed below:
@ -97,7 +97,7 @@
# becomes: user+foo@domain, user@domain, domain, user+foo@, # becomes: user+foo@domain, user@domain, domain, user+foo@,
# and user@. # and user@.
# #
# HOST NAME/ADDRESS PATTERNS # HOST NAME/ADDRESS PATTERNS IN INDEXED TABLES
# With lookups from indexed files such as DB or DBM, or from # With lookups from indexed files such as DB or DBM, or from
# networked tables such as NIS, LDAP or SQL, the following # networked tables such as NIS, LDAP or SQL, the following
# lookup patterns are examined in the order as listed: # lookup patterns are examined in the order as listed:

View File

@ -60,7 +60,7 @@ ACCESS(5) ACCESS(5)
A logical line starts with non-whitespace text. A line that A logical line starts with non-whitespace text. A line that
starts with whitespace continues a logical line. starts with whitespace continues a logical line.
<b>EMAIL ADDRESS PATTERNS</b> <b>EMAIL ADDRESS PATTERNS IN INDEXED TABLES</b>
With lookups from indexed files such as DB or DBM, or from networked With lookups from indexed files such as DB or DBM, or from networked
tables such as NIS, LDAP or SQL, patterns are tried in the order as tables such as NIS, LDAP or SQL, patterns are tried in the order as
listed below: listed below:
@ -92,7 +92,7 @@ ACCESS(5) ACCESS(5)
(e.g., <i>user+foo</i>@<i>domain</i>), the lookup order becomes: <i>user+foo</i>@<i>domain</i>, (e.g., <i>user+foo</i>@<i>domain</i>), the lookup order becomes: <i>user+foo</i>@<i>domain</i>,
<i>user</i>@<i>domain</i>, <i>domain</i>, <i>user+foo</i>@, and <i>user</i>@. <i>user</i>@<i>domain</i>, <i>domain</i>, <i>user+foo</i>@, and <i>user</i>@.
<b>HOST NAME/ADDRESS PATTERNS</b> <b>HOST NAME/ADDRESS PATTERNS IN INDEXED TABLES</b>
With lookups from indexed files such as DB or DBM, or from networked With lookups from indexed files such as DB or DBM, or from networked
tables such as NIS, LDAP or SQL, the following lookup patterns are tables such as NIS, LDAP or SQL, the following lookup patterns are
examined in the order as listed: examined in the order as listed:

File diff suppressed because it is too large Load Diff

View File

@ -15986,7 +15986,7 @@ can be excluded with <a href="postconf.5.html#smtpd_forbid_bare_newline_exclusio
<dt> <b>note</b> </dt> <dd> Same as "normalize", but also notes in <dt> <b>note</b> </dt> <dd> Same as "normalize", but also notes in
the log whether the Postfix SMTP server received any lines with the log whether the Postfix SMTP server received any lines with
"bare &lt;LF&gt;". The information is formatted as "<tt>disconnect "bare &lt;LF&gt;". The information is formatted as "<tt>disconnect
from name[address] ... notes=bare_lf</tt>". The new value is from name[address] ... notes=bare_lf</tt>". The notes value is
expected to become a list of comma-separated names. <br> <br> This expected to become a list of comma-separated names. <br> <br> This
feature is available in Postfix 3.9 and later. </dd> feature is available in Postfix 3.9 and later. </dd>

File diff suppressed because it is too large Load Diff

View File

@ -62,7 +62,7 @@ are lines whose first non\-whitespace character is a `#'.
.IP "multi\-line text" .IP "multi\-line text"
A logical line starts with non\-whitespace text. A line that A logical line starts with non\-whitespace text. A line that
starts with whitespace continues a logical line. starts with whitespace continues a logical line.
.SH "EMAIL ADDRESS PATTERNS" .SH "EMAIL ADDRESS PATTERNS IN INDEXED TABLES"
.na .na
.nf .nf
.ad .ad
@ -99,7 +99,7 @@ When a mail address localpart contains the optional recipient delimiter
(e.g., \fIuser+foo\fR@\fIdomain\fR), the lookup order becomes: (e.g., \fIuser+foo\fR@\fIdomain\fR), the lookup order becomes:
\fIuser+foo\fR@\fIdomain\fR, \fIuser\fR@\fIdomain\fR, \fIdomain\fR, \fIuser+foo\fR@\fIdomain\fR, \fIuser\fR@\fIdomain\fR, \fIdomain\fR,
\fIuser+foo\fR@, and \fIuser\fR@. \fIuser+foo\fR@, and \fIuser\fR@.
.SH "HOST NAME/ADDRESS PATTERNS" .SH "HOST NAME/ADDRESS PATTERNS IN INDEXED TABLES"
.na .na
.nf .nf
.ad .ad

View File

@ -11062,7 +11062,7 @@ can be excluded with smtpd_forbid_bare_newline_exclusions.
Same as "normalize", but also notes in Same as "normalize", but also notes in
the log whether the Postfix SMTP server received any lines with the log whether the Postfix SMTP server received any lines with
"bare <LF>". The information is formatted as "disconnect "bare <LF>". The information is formatted as "disconnect
from name[address] ... notes=bare_lf". The new value is from name[address] ... notes=bare_lf". The notes value is
expected to become a list of comma\-separated names. expected to become a list of comma\-separated names.
.br .br
.br .br

View File

@ -29,9 +29,9 @@ be tried again at a later time. Delivery status reports are sent
to the \fBbounce\fR(8), \fBdefer\fR(8) or \fBtrace\fR(8) daemon as to the \fBbounce\fR(8), \fBdefer\fR(8) or \fBtrace\fR(8) daemon as
appropriate. appropriate.
The server lookup strategy is different for SMTP and LMTP. The server lookup strategy is different for SMTP and LMTP,
The details are given below under in the sections "SMTP as described in the sections "SMTP SERVER LOOKUP" and "LMTP
DESTINATION SYNTAX" and "LMTP DESTINATION SYNTAX". SERVER LOOKUP".
After a successful mail transaction, a connection may be saved After a successful mail transaction, a connection may be saved
to the \fBscache\fR(8) connection cache server, so that it to the \fBscache\fR(8) connection cache server, so that it
@ -41,7 +41,7 @@ By default, connection caching is enabled temporarily for
destinations that have a high volume of mail in the active destinations that have a high volume of mail in the active
queue. Connection caching can be enabled permanently for queue. Connection caching can be enabled permanently for
specific destinations. specific destinations.
.SH "SMTP DESTINATION SYNTAX" .SH "SMTP SERVER LOOKUP"
.na .na
.nf .nf
.ad .ad
@ -67,7 +67,7 @@ the specified service (default: \fBsmtp\fR).
Connect to the host at the specified address, and connect Connect to the host at the specified address, and connect
to the specified service (default: \fBsmtp\fR). An IPv6 address to the specified service (default: \fBsmtp\fR). An IPv6 address
must be formatted as [\fBipv6\fR:\fIaddress\fR]. must be formatted as [\fBipv6\fR:\fIaddress\fR].
.SH "LMTP DESTINATION SYNTAX" .SH "LMTP SERVER LOOKUP"
.na .na
.nf .nf
.ad .ad

View File

@ -52,7 +52,7 @@
# .IP "multi-line text" # .IP "multi-line text"
# A logical line starts with non-whitespace text. A line that # A logical line starts with non-whitespace text. A line that
# starts with whitespace continues a logical line. # starts with whitespace continues a logical line.
# EMAIL ADDRESS PATTERNS # EMAIL ADDRESS PATTERNS IN INDEXED TABLES
# .ad # .ad
# .fi # .fi
# With lookups from indexed files such as DB or DBM, or from networked # With lookups from indexed files such as DB or DBM, or from networked
@ -85,7 +85,7 @@
# (e.g., \fIuser+foo\fR@\fIdomain\fR), the lookup order becomes: # (e.g., \fIuser+foo\fR@\fIdomain\fR), the lookup order becomes:
# \fIuser+foo\fR@\fIdomain\fR, \fIuser\fR@\fIdomain\fR, \fIdomain\fR, # \fIuser+foo\fR@\fIdomain\fR, \fIuser\fR@\fIdomain\fR, \fIdomain\fR,
# \fIuser+foo\fR@, and \fIuser\fR@. # \fIuser+foo\fR@, and \fIuser\fR@.
# HOST NAME/ADDRESS PATTERNS # HOST NAME/ADDRESS PATTERNS IN INDEXED TABLES
# .ad # .ad
# .fi # .fi
# With lookups from indexed files such as DB or DBM, or from networked # With lookups from indexed files such as DB or DBM, or from networked

View File

@ -19085,7 +19085,7 @@ can be excluded with smtpd_forbid_bare_newline_exclusions. </dd>
<dt> <b>note</b> </dt> <dd> Same as "normalize", but also notes in <dt> <b>note</b> </dt> <dd> Same as "normalize", but also notes in
the log whether the Postfix SMTP server received any lines with the log whether the Postfix SMTP server received any lines with
"bare &lt;LF&gt;". The information is formatted as "<tt>disconnect "bare &lt;LF&gt;". The information is formatted as "<tt>disconnect
from name[address] ... notes=bare_lf</tt>". The new value is from name[address] ... notes=bare_lf</tt>". The notes value is
expected to become a list of comma-separated names. <br> <br> This expected to become a list of comma-separated names. <br> <br> This
feature is available in Postfix 3.9 and later. </dd> feature is available in Postfix 3.9 and later. </dd>

View File

@ -107,3 +107,4 @@ proto proto aliases proto virtual proto ADDRESS_REWRITING_README html
postdrop postdrop c postsuper postsuper c sendmail sendmail c postdrop postdrop c postsuper postsuper c sendmail sendmail c
postlogd postlogd c postlogd postlogd c
qmgr qmgr c qmqpd qmqpd c trivial rewrite trivial rewrite c qmgr qmgr c qmqpd qmqpd c trivial rewrite trivial rewrite c
strategies File smtp smtp c

View File

@ -75,3 +75,4 @@ Refactored
Vijay Vijay
Sakaguchi Sakaguchi
Toshifumi Toshifumi
mxonly

View File

@ -24,7 +24,7 @@ Reporting-MTA: dns; mail.example
Original-Envelope-Id: TEST-ENVID Original-Envelope-Id: TEST-ENVID
X-Postfix-Queue-ID: msgid X-Postfix-Queue-ID: msgid
X-Postfix-Sender: rfc822; sender@sender.example X-Postfix-Sender: rfc822; sender@sender.example
Arrival-Date: Sat, 5 Dec 2020 13:31:48 -0500 (EST) Arrival-Date: Sat, 05 Dec 2020 13:31:48 -0500 (EST)
Final-Recipient: rfc822; rcpt-address Final-Recipient: rfc822; rcpt-address
Original-Recipient: rfc822; rcpt-orig_addr Original-Recipient: rfc822; rcpt-orig_addr

View File

@ -26,7 +26,7 @@ Reporting-MTA: dns; mail.example
Original-Envelope-Id: TEST-ENVID Original-Envelope-Id: TEST-ENVID
X-Postfix-Queue-ID: msgid X-Postfix-Queue-ID: msgid
X-Postfix-Sender: rfc822; sender@sender.example X-Postfix-Sender: rfc822; sender@sender.example
Arrival-Date: Sat, 5 Dec 2020 13:31:48 -0500 (EST) Arrival-Date: Sat, 05 Dec 2020 13:31:48 -0500 (EST)
Final-Recipient: rfc822; rcpt-address Final-Recipient: rfc822; rcpt-address
Original-Recipient: rfc822; rcpt-orig_addr Original-Recipient: rfc822; rcpt-orig_addr

View File

@ -6,6 +6,6 @@
./test_dns_lookup: lookup porcupine.org type A flags RES_USE_DNSSEC ./test_dns_lookup: lookup porcupine.org type A flags RES_USE_DNSSEC
./test_dns_lookup: dns_query: porcupine.org (A): Host found but no data record of requested type ./test_dns_lookup: dns_query: porcupine.org (A): Host found but no data record of requested type
ad: 0, rr: porcupine.org. 3600 IN MX 10 spike.porcupine.org. ad: 0, rr: porcupine.org. 3600 IN MX 10 spike.porcupine.org.
ad: 0, rr: porcupine.org. 3600 IN MX 30 m1.porcupine.org.
ad: 0, rr: porcupine.org. 3600 IN MX 30 vz.porcupine.org. ad: 0, rr: porcupine.org. 3600 IN MX 30 vz.porcupine.org.
ad: 0, rr: porcupine.org. 3600 IN MX 40 m1.porcupine.org.
porcupine.org: fqdn: porcupine.org porcupine.org: fqdn: porcupine.org

View File

@ -1,15 +1,15 @@
./test_dns_lookup: dict_regexp_lookup: no-mx.reg: porcupine.org. 3600 IN MX 10 spike.porcupine.org. ./test_dns_lookup: dict_regexp_lookup: no-mx.reg: porcupine.org. 3600 IN MX 10 spike.porcupine.org.
./test_dns_lookup: dict_regexp_lookup: no-mx.reg: porcupine.org. 3600 IN MX 30 m1.porcupine.org.
./test_dns_lookup: dict_regexp_lookup: no-mx.reg: porcupine.org. 3600 IN MX 30 vz.porcupine.org. ./test_dns_lookup: dict_regexp_lookup: no-mx.reg: porcupine.org. 3600 IN MX 30 vz.porcupine.org.
./test_dns_lookup: dict_regexp_lookup: no-mx.reg: porcupine.org. 3600 IN MX 40 m1.porcupine.org.
./test_dns_lookup: dns_get_answer: type MX for porcupine.org ./test_dns_lookup: dns_get_answer: type MX for porcupine.org
./test_dns_lookup: dns_get_answer: type MX for porcupine.org ./test_dns_lookup: dns_get_answer: type MX for porcupine.org
./test_dns_lookup: dns_get_answer: type MX for porcupine.org ./test_dns_lookup: dns_get_answer: type MX for porcupine.org
./test_dns_lookup: dns_query: porcupine.org (MX): OK ./test_dns_lookup: dns_query: porcupine.org (MX): OK
./test_dns_lookup: ignoring DNS RR: porcupine.org. 3600 IN MX 10 spike.porcupine.org. ./test_dns_lookup: ignoring DNS RR: porcupine.org. 3600 IN MX 10 spike.porcupine.org.
./test_dns_lookup: ignoring DNS RR: porcupine.org. 3600 IN MX 30 m1.porcupine.org.
./test_dns_lookup: ignoring DNS RR: porcupine.org. 3600 IN MX 30 vz.porcupine.org. ./test_dns_lookup: ignoring DNS RR: porcupine.org. 3600 IN MX 30 vz.porcupine.org.
./test_dns_lookup: ignoring DNS RR: porcupine.org. 3600 IN MX 40 m1.porcupine.org.
./test_dns_lookup: lookup porcupine.org type MX flags RES_USE_DNSSEC ./test_dns_lookup: lookup porcupine.org type MX flags RES_USE_DNSSEC
./test_dns_lookup: maps_find: DNS reply filter: regexp:no-mx.reg(0,lock|fold_fix): porcupine.org. 3600 IN MX 10 spike.porcupine.org. = ignore ./test_dns_lookup: maps_find: DNS reply filter: regexp:no-mx.reg(0,lock|fold_fix): porcupine.org. 3600 IN MX 10 spike.porcupine.org. = ignore
./test_dns_lookup: maps_find: DNS reply filter: regexp:no-mx.reg(0,lock|fold_fix): porcupine.org. 3600 IN MX 30 m1.porcupine.org. = ignore
./test_dns_lookup: maps_find: DNS reply filter: regexp:no-mx.reg(0,lock|fold_fix): porcupine.org. 3600 IN MX 30 vz.porcupine.org. = ignore ./test_dns_lookup: maps_find: DNS reply filter: regexp:no-mx.reg(0,lock|fold_fix): porcupine.org. 3600 IN MX 30 vz.porcupine.org. = ignore
./test_dns_lookup: maps_find: DNS reply filter: regexp:no-mx.reg(0,lock|fold_fix): porcupine.org. 3600 IN MX 40 m1.porcupine.org. = ignore
./test_dns_lookup: warning: Error looking up name=porcupine.org type=MX: DNS reply filter drops all results (rcode=0) ./test_dns_lookup: warning: Error looking up name=porcupine.org type=MX: DNS reply filter drops all results (rcode=0)

View File

@ -10,7 +10,7 @@
/* time_t when; /* time_t when;
/* DESCRIPTION /* DESCRIPTION
/* mail_date() converts the time specified in \fIwhen\fR to the /* mail_date() converts the time specified in \fIwhen\fR to the
/* form: "Mon, 9 Dec 1996 05:38:26 -0500 (EST)" and returns /* form: "Mon, 09 Dec 1996 05:38:26 -0500 (EST)" and returns
/* a pointer to the result. The result is overwritten upon /* a pointer to the result. The result is overwritten upon
/* each call. /* each call.
/* DIAGNOSTICS /* DIAGNOSTICS
@ -104,7 +104,7 @@ const char *mail_date(time_t when)
* potentially breaking change, we prefer the %d (two-digit day) format, * potentially breaking change, we prefer the %d (two-digit day) format,
* i.e. days 1-9 now have a leading zero instead of a leading space. * i.e. days 1-9 now have a leading zero instead of a leading space.
*/ */
#if defined(MISSING_STRFTIME_E) || defined (TWO_DIGIT_DAY_IN_DATE_TIME) #if defined(MISSING_STRFTIME_E) || defined(TWO_DIGIT_DAY_IN_DATE_TIME)
#define STRFTIME_FMT "%a, %d %b %Y %H:%M:%S " #define STRFTIME_FMT "%a, %d %b %Y %H:%M:%S "
#else #else
#define STRFTIME_FMT "%a, %e %b %Y %H:%M:%S " #define STRFTIME_FMT "%a, %e %b %Y %H:%M:%S "

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 "20240209" #define MAIL_RELEASE_DATE "20240213"
#define MAIL_VERSION_NUMBER "3.9" #define MAIL_VERSION_NUMBER "3.9"
#ifdef SNAPSHOT #ifdef SNAPSHOT

View File

@ -195,8 +195,12 @@ const char *maps_find(MAPS *maps, const char *name, int flags)
for (map_name = maps->argv->argv; *map_name; map_name++) { for (map_name = maps->argv->argv; *map_name; map_name++) {
if ((dict = dict_handle(*map_name)) == 0) if ((dict = dict_handle(*map_name)) == 0)
msg_panic("%s: dictionary not found: %s", myname, *map_name); msg_panic("%s: dictionary not found: %s", myname, *map_name);
if (flags != 0 && (dict->flags & flags) == 0) if (flags != 0 && (dict->flags & flags) == 0) {
if (msg_verbose)
msg_info("%s: %s: skipping %s lookup for %s",
myname, maps->title, *map_name, name);
continue; continue;
}
if ((expansion = dict_get(dict, name)) != 0) { if ((expansion = dict_get(dict, name)) != 0) {
if (*expansion == 0) { if (*expansion == 0) {
msg_warn("%s lookup of %s returns an empty string result", msg_warn("%s lookup of %s returns an empty string result",
@ -252,8 +256,12 @@ const char *maps_file_find(MAPS *maps, const char *name, int flags)
if ((dict->flags & DICT_FLAG_SRC_RHS_IS_FILE) == 0) if ((dict->flags & DICT_FLAG_SRC_RHS_IS_FILE) == 0)
msg_panic("%s: %s: opened without DICT_FLAG_SRC_RHS_IS_FILE", msg_panic("%s: %s: opened without DICT_FLAG_SRC_RHS_IS_FILE",
myname, maps->title); myname, maps->title);
if (flags != 0 && (dict->flags & flags) == 0) if (flags != 0 && (dict->flags & flags) == 0) {
if (msg_verbose)
msg_info("%s: %s: skipping %s lookup for %s",
myname, maps->title, *map_name, name);
continue; continue;
}
if ((expansion = dict_get(dict, name)) != 0) { if ((expansion = dict_get(dict, name)) != 0) {
if (*expansion == 0) { if (*expansion == 0) {
msg_warn("%s lookup of %s returns an empty string result", msg_warn("%s lookup of %s returns an empty string result",

View File

@ -23,9 +23,9 @@
/* to the \fBbounce\fR(8), \fBdefer\fR(8) or \fBtrace\fR(8) daemon as /* to the \fBbounce\fR(8), \fBdefer\fR(8) or \fBtrace\fR(8) daemon as
/* appropriate. /* appropriate.
/* /*
/* The server lookup strategy is different for SMTP and LMTP. /* The server lookup strategy is different for SMTP and LMTP,
/* The details are given below under in the sections "SMTP /* as described in the sections "SMTP SERVER LOOKUP" and "LMTP
/* DESTINATION SYNTAX" and "LMTP DESTINATION SYNTAX". /* SERVER LOOKUP".
/* /*
/* After a successful mail transaction, a connection may be saved /* After a successful mail transaction, a connection may be saved
/* to the \fBscache\fR(8) connection cache server, so that it /* to the \fBscache\fR(8) connection cache server, so that it
@ -35,7 +35,7 @@
/* destinations that have a high volume of mail in the active /* destinations that have a high volume of mail in the active
/* queue. Connection caching can be enabled permanently for /* queue. Connection caching can be enabled permanently for
/* specific destinations. /* specific destinations.
/* SMTP DESTINATION SYNTAX /* SMTP SERVER LOOKUP
/* .ad /* .ad
/* .fi /* .fi
/* The Postfix SMTP client supports multiple destinations /* The Postfix SMTP client supports multiple destinations
@ -59,7 +59,7 @@
/* Connect to the host at the specified address, and connect /* Connect to the host at the specified address, and connect
/* to the specified service (default: \fBsmtp\fR). An IPv6 address /* to the specified service (default: \fBsmtp\fR). An IPv6 address
/* must be formatted as [\fBipv6\fR:\fIaddress\fR]. /* must be formatted as [\fBipv6\fR:\fIaddress\fR].
/* LMTP DESTINATION SYNTAX /* LMTP SERVER LOOKUP
/* .ad /* .ad
/* .fi /* .fi
/* The Postfix LMTP client supports multiple destinations /* The Postfix LMTP client supports multiple destinations

View File

@ -164,6 +164,7 @@ int main(int argc, char **argv)
msg_info("PASS %s/%d", str_name_code(af_map, tp->in_af), msg_info("PASS %s/%d", str_name_code(af_map, tp->in_af),
tp->in_prefix_len); tp->in_prefix_len);
} }
myfree(act_prefix);
} }
msg_info("PASS=%d FAIL=%d", pass, fail); msg_info("PASS=%d FAIL=%d", pass, fail);
return (fail > 0); return (fail > 0);