2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-28 20:57:56 +00:00

postfix-3.8-20220325

This commit is contained in:
Wietse Venema 2022-03-25 00:00:00 -05:00 committed by Viktor Dukhovni
parent 57dd3f38dd
commit 351ab5234c
11 changed files with 263 additions and 194 deletions

View File

@ -26306,3 +26306,25 @@ Apologies for any names omitted.
util/htable.c.
Cleanup: unused initialization. File: util/make_dirs.c
20220222
Documentation: updated comment text. File: util/hash_fnv.c.
29220312
Cleanup: when a main.cf like file may have changed while
it was read, forget the settings before re-reading the file.
File: util/dict.c.
20220322
Cleanup: added missing _checks, _reply_footer, _reply_filter,
_command_filter, and _delivery_status_filter parameter names
to the proxy_read_maps default value. Files: global/mail_params.h,
mantools/missing-proxy-read-maps.
20220325
Documentation: how to stop recursion in virtual_alias_maps.
File: proto/virtual.

View File

@ -6,6 +6,18 @@ Wish list:
Disable -DSNAPSHOT and -DNONPROD in makedefs.
postscreen_dnsbl_sites is evaluated in the reverse order, breaking
expectations when different reply patterns have different weights.
We need a compatibility_level feature to correct this.
In the cleanup daemon, open the milter*header_checks greedily,
before the chroot() call. This code is implemented and needs
to be tested.
In the pgsql: client, make the client encoding configurable
with a sensible default (UTF8). This code is implemented
and needs to be tested.
FILTER_README needs some text on multi-instance implementations,
and existing multi-instance references need to be updated.

View File

@ -14,9 +14,12 @@
# The optional virtual(5) alias table rewrites recipient
# addresses for all local, all virtual, and all remote mail
# destinations. This is unlike the aliases(5) table which
# is used only for local(8) delivery. Virtual aliasing is
# recursive, and is implemented by the Postfix cleanup(8)
# daemon before mail is queued.
# is used only for local(8) delivery. This feature is imple-
# mented in the Postfix cleanup(8) daemon before mail is
# queued.
#
# Virtual aliasing is recursive; to terminate recursion for
# a specific address, alias that address to itself.
#
# The main applications of virtual aliasing are:
#

View File

@ -20,8 +20,11 @@ VIRTUAL(5) VIRTUAL(5)
The optional <a href="virtual.5.html"><b>virtual</b>(5)</a> alias table rewrites recipient addresses for
all local, all virtual, and all remote mail destinations. This is
unlike the <a href="aliases.5.html"><b>aliases</b>(5)</a> table which is used only for <a href="local.8.html"><b>local</b>(8)</a> delivery.
Virtual aliasing is recursive, and is implemented by the Postfix
<a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon before mail is queued.
This feature is implemented in the Postfix <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon before
mail is queued.
Virtual aliasing is recursive; to terminate recursion for a specific
address, alias that address to itself.
The main applications of virtual aliasing are:
@ -145,12 +148,12 @@ VIRTUAL(5) VIRTUAL(5)
<b>VIRTUAL ALIAS DOMAINS</b>
Besides virtual aliases, the virtual alias table can also be used to
implement <a href="ADDRESS_CLASS_README.html#virtual_alias_class">virtual alias domains</a>. With a virtual alias domain, all
implement virtual alias domains. With a <a href="ADDRESS_CLASS_README.html#virtual_alias_class">virtual alias domain</a>, all
recipient addresses are aliased to addresses in other domains.
Virtual alias domains are not to be confused with the virtual mailbox
domains that are implemented with the Postfix <a href="virtual.8.html"><b>virtual</b>(8)</a> mail delivery
agent. With virtual mailbox domains, each recipient address can have
agent. With <a href="ADDRESS_CLASS_README.html#virtual_mailbox_class">virtual mailbox domains</a>, each recipient address can have
its own mailbox.
With a <a href="ADDRESS_CLASS_README.html#virtual_alias_class">virtual alias domain</a>, the virtual domain has its own user name

View File

@ -20,9 +20,11 @@ The optional \fBvirtual\fR(5) alias table rewrites recipient
addresses for all local, all virtual, and all remote mail
destinations.
This is unlike the \fBaliases\fR(5) table which is used
only for \fBlocal\fR(8) delivery. Virtual aliasing is
recursive, and is implemented by the Postfix \fBcleanup\fR(8)
daemon before mail is queued.
only for \fBlocal\fR(8) delivery. This feature is implemented
in the Postfix \fBcleanup\fR(8) daemon before mail is queued.
Virtual aliasing is recursive; to terminate recursion for
a specific address, alias that address to itself.
The main applications of virtual aliasing are:
.IP \(bu

View File

@ -47,7 +47,7 @@ open(ALL_PARAM_NAMES, "$command|")
|| die "can't execute $command: !$\n";
while ($param_name = <ALL_PARAM_NAMES>) {
chomp($param_name);
next unless ($param_name =~ /_maps$/);
next unless ($param_name =~ /_(checks|delivery_status_filter|reply_filter|command_filter|maps)$/);
next if ($param_name =~ /^(proxy_read|proxy_write)_maps$/);
next if defined($proxy_read_maps{$param_name});
die "unknown parameter: $param_name\n"

View File

@ -14,9 +14,11 @@
# addresses for all local, all virtual, and all remote mail
# destinations.
# This is unlike the \fBaliases\fR(5) table which is used
# only for \fBlocal\fR(8) delivery. Virtual aliasing is
# recursive, and is implemented by the Postfix \fBcleanup\fR(8)
# daemon before mail is queued.
# only for \fBlocal\fR(8) delivery. This feature is implemented
# in the Postfix \fBcleanup\fR(8) daemon before mail is queued.
#
# Virtual aliasing is recursive; to terminate recursion for
# a specific address, alias that address to itself.
#
# The main applications of virtual aliasing are:
# .IP \(bu

View File

@ -2502,7 +2502,33 @@ extern int var_local_rcpt_code;
" $" VAR_PSC_REJ_FTR_MAPS \
" $" VAR_SMTPD_REJ_FTR_MAPS \
" $" VAR_TLS_SERVER_SNI_MAPS \
" $" VAR_TLSP_CLNT_POLICY
" $" VAR_TLSP_CLNT_POLICY \
" $" VAR_DSN_FILTER \
" $" VAR_LMTP_DSN_FILTER \
" $" VAR_LMTP_DNS_RE_FILTER \
" $" VAR_LMTP_RESP_FILTER \
" $" VAR_LOCAL_DSN_FILTER \
" $" VAR_PIPE_DSN_FILTER \
" $" VAR_PSC_CMD_FILTER \
" $" VAR_SMTP_DSN_FILTER \
" $" VAR_SMTP_DNS_RE_FILTER \
" $" VAR_SMTP_RESP_FILTER \
" $" VAR_SMTPD_CMD_FILTER \
" $" VAR_SMTPD_DNS_RE_FILTER \
" $" VAR_VIRT_DSN_FILTER \
" $" VAR_BODY_CHECKS \
" $" VAR_HEADER_CHECKS \
" $" VAR_LMTP_BODY_CHKS \
" $" VAR_LMTP_HEAD_CHKS \
" $" VAR_LMTP_MIME_CHKS \
" $" VAR_LMTP_NEST_CHKS \
" $" VAR_MILT_HEAD_CHECKS \
" $" VAR_MIMEHDR_CHECKS \
" $" VAR_NESTHDR_CHECKS \
" $" VAR_SMTP_BODY_CHKS \
" $" VAR_SMTP_HEAD_CHKS \
" $" VAR_SMTP_MIME_CHKS \
" $" VAR_SMTP_NEST_CHKS
extern char *var_proxy_read_maps;
#define VAR_PROXY_WRITE_MAPS "proxy_write_maps"

View File

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

View File

@ -463,6 +463,7 @@ int dict_load_file_xt(const char *dict_name, const char *path)
if (msg_verbose > 1)
msg_info("pausing to let %s cool down", path);
doze(300000);
dict_unregister(dict_name);
}
return (1);
}

View File

@ -19,18 +19,16 @@
/* strings, avoiding an unnecessary strlen() call.
/*
/* To thwart collision attacks, the hash function is seeded
/* once from /dev/urandom, and if that is unavailable, from
/* wallclock time, monotonic system clocks, and the process
/* ID. To disable seeding (typically, for regression tests),
/* specify the NORANDOMIZE environment variable; the value
/* does not matter.
/* once with ldseed(). To disable seeding (typically, to make
/* tests predictable), specify the NORANDOMIZE environment
/* variable; the value does not matter.
/*
/* This function implements a workaround for a "sticky state"
/* problem with FNV hash functions: when an input produces a
/* zero hash state, and the next input byte is zero, then the
/* hash state would not change. To avoid this, hash_fnv() adds
/* 1 to each input value. Compile with -DSTRICT_FNV1A to get
/* the standard behavior.
/* This implementation works around a "sticky state" problem
/* with FNV hash functions: when an input produces a zero hash
/* state, and the next input byte is zero, then the hash state
/* would not change. To avoid this, hash_fnv() adds 1 to each
/* input value. Compile with -DSTRICT_FNV1A to get the standard
/* behavior.
/*
/* The default HASH_FNV_T result type is uint64_t. When compiled
/* with -DUSE_FNV_32BIT, the result type is uint32_t. On ancient