mirror of
https://github.com/vdukhovni/postfix
synced 2025-08-30 05:38:06 +00:00
postfix-1.1.11-20020613
This commit is contained in:
parent
866561e747
commit
97342c743c
@ -6623,6 +6623,15 @@ Apologies for any names omitted.
|
||||
address must be handled sensibly. Files: global/resolve_clnt.c,
|
||||
trivial-rewrite/resolve.c. It ain't perfect yet, but close.
|
||||
|
||||
20020613
|
||||
|
||||
Bugfix: postsuper -r was broken as of 20020510. The cleanup
|
||||
daemon would discard mail with MIME type information. Moved
|
||||
a bunch of sanity checks from the cleanup daemon to the
|
||||
pickup daemon, so the checks are in one place. Problem
|
||||
experienced by Pavol Luptak. Files: pickup/pickup.c,
|
||||
cleanup/cleanup_extracted.c.
|
||||
|
||||
Open problems:
|
||||
|
||||
Medium: old maildrop files are no longer readable by the
|
||||
@ -6630,8 +6639,8 @@ Open problems:
|
||||
|
||||
Low: all table lookups should consistently use internalized
|
||||
(unquoted) or externalized (quoted) forms as lookup keys.
|
||||
smtpd, qmgr, local, etc. use internalized forms as keys.
|
||||
cleanup uses externalized forms.
|
||||
smtpd, qmgr, local, etc. use unquoted address forms as
|
||||
keys. cleanup uses quoted forms.
|
||||
|
||||
Low: sendmail does not store null command-line recipients.
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
#
|
||||
# VIRTUAL(5) VIRTUAL(5)
|
||||
#
|
||||
# NAME
|
||||
@ -132,8 +131,8 @@
|
||||
# $inet_interfaces.
|
||||
#
|
||||
# This functionality overlaps with functionality of
|
||||
# the local alias(5) database. The difference is that
|
||||
# virtual mapping can be applied to non-local
|
||||
# the local aliases(5) database. The difference is
|
||||
# that virtual mapping can be applied to non-local
|
||||
# addresses.
|
||||
#
|
||||
# @domain address, address, ...
|
||||
@ -216,5 +215,4 @@
|
||||
# P.O. Box 704
|
||||
# Yorktown Heights, NY 10598, USA
|
||||
#
|
||||
# 1
|
||||
#
|
||||
# VIRTUAL(5)
|
||||
|
@ -1,5 +1,4 @@
|
||||
<html> <head> </head> <body> <pre>
|
||||
|
||||
VIRTUAL(5) VIRTUAL(5)
|
||||
|
||||
<b>NAME</b>
|
||||
@ -133,8 +132,8 @@ VIRTUAL(5) VIRTUAL(5)
|
||||
$<i>inet_interfaces</i>.
|
||||
|
||||
This functionality overlaps with functionality of
|
||||
the local <i>alias</i>(5) database. The difference is that
|
||||
<b>virtual</b> mapping can be applied to non-local
|
||||
the local <i>aliases</i>(5) database. The difference is
|
||||
that <b>virtual</b> mapping can be applied to non-local
|
||||
addresses.
|
||||
|
||||
@<i>domain</i> <i>address,</i> <i>address,</i> <i>...</i>
|
||||
@ -217,6 +216,5 @@ VIRTUAL(5) VIRTUAL(5)
|
||||
P.O. Box 704
|
||||
Yorktown Heights, NY 10598, USA
|
||||
|
||||
1
|
||||
|
||||
VIRTUAL(5)
|
||||
</pre> </body> </html>
|
||||
|
@ -144,7 +144,7 @@ Mail for \fIuser\fR@\fIsite\fR is redirected to \fIaddress\fR when
|
||||
$\fRmydestination\fR, or when it is listed in $\fIinet_interfaces\fR.
|
||||
.sp
|
||||
This functionality overlaps with functionality of the local
|
||||
\fIalias\fR(5) database. The difference is that \fBvirtual\fR
|
||||
\fIaliases\fR(5) database. The difference is that \fBvirtual\fR
|
||||
mapping can be applied to non-local addresses.
|
||||
.IP "@\fIdomain address, address, ...\fR"
|
||||
Mail for any user in \fIdomain\fR is redirected to \fIaddress\fR.
|
||||
|
@ -132,7 +132,7 @@
|
||||
# $\fRmydestination\fR, or when it is listed in $\fIinet_interfaces\fR.
|
||||
# .sp
|
||||
# This functionality overlaps with functionality of the local
|
||||
# \fIalias\fR(5) database. The difference is that \fBvirtual\fR
|
||||
# \fIaliases\fR(5) database. The difference is that \fBvirtual\fR
|
||||
# mapping can be applied to non-local addresses.
|
||||
# .IP "@\fIdomain address, address, ...\fR"
|
||||
# Mail for any user in \fIdomain\fR is redirected to \fIaddress\fR.
|
||||
|
@ -120,21 +120,13 @@ void cleanup_extracted(CLEANUP_STATE *state, int type, char *buf, int len)
|
||||
|
||||
/* cleanup_extracted_process - process extracted segment */
|
||||
|
||||
static void cleanup_extracted_process(CLEANUP_STATE *state, int type, char *buf, int unused_len)
|
||||
static void cleanup_extracted_process(CLEANUP_STATE *state, int type, char *buf, int len)
|
||||
{
|
||||
char *myname = "cleanup_extracted_process";
|
||||
VSTRING *clean_addr;
|
||||
ARGV *rcpt;
|
||||
char **cpp;
|
||||
|
||||
if (type == REC_TYPE_RRTO) {
|
||||
/* XXX Use extracted information instead. */
|
||||
return;
|
||||
}
|
||||
if (type == REC_TYPE_ERTO) {
|
||||
/* XXX Use extracted information instead. */
|
||||
return;
|
||||
}
|
||||
if (type == REC_TYPE_RCPT) {
|
||||
clean_addr = vstring_alloc(100);
|
||||
cleanup_rewrite_internal(clean_addr, *buf ? buf : var_empty_addr);
|
||||
@ -154,9 +146,7 @@ static void cleanup_extracted_process(CLEANUP_STATE *state, int type, char *buf,
|
||||
return;
|
||||
}
|
||||
if (type != REC_TYPE_END) {
|
||||
msg_warn("%s: unexpected record type %d in extracted segment",
|
||||
state->queue_id, type);
|
||||
state->errs |= CLEANUP_STAT_BAD;
|
||||
cleanup_out(state, type, buf, len);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
* Patches change the patchlevel and the release date. Snapshots change the
|
||||
* release date only, unless they include the same bugfix as a patch release.
|
||||
*/
|
||||
#define MAIL_RELEASE_DATE "20020610"
|
||||
#define MAIL_RELEASE_DATE "20020613"
|
||||
|
||||
#define VAR_MAIL_VERSION "mail_version"
|
||||
#define DEF_MAIL_VERSION "1.1.11-" MAIL_RELEASE_DATE
|
||||
|
@ -200,19 +200,26 @@ static int copy_segment(VSTREAM *qfile, VSTREAM *cleanup, PICKUP_INFO *info,
|
||||
}
|
||||
#define STREQ(x,y) (strcmp(x,y) == 0)
|
||||
|
||||
if (info->st.st_uid == var_owner_uid
|
||||
|| (STREQ(attr_name, MAIL_ATTR_ENCODING)
|
||||
&& (STREQ(attr_value, MAIL_ATTR_ENC_7BIT)
|
||||
|| STREQ(attr_value, MAIL_ATTR_ENC_8BIT)
|
||||
|| STREQ(attr_value, MAIL_ATTR_ENC_NONE)))) {
|
||||
if (STREQ(attr_name, MAIL_ATTR_ENCODING)
|
||||
&& (STREQ(attr_value, MAIL_ATTR_ENC_7BIT)
|
||||
|| STREQ(attr_value, MAIL_ATTR_ENC_8BIT)
|
||||
|| STREQ(attr_value, MAIL_ATTR_ENC_NONE))) {
|
||||
rec_fprintf(cleanup, REC_TYPE_ATTR, "%s=%s",
|
||||
attr_name, attr_value);
|
||||
continue;
|
||||
} else if (info->st.st_uid != var_owner_uid) {
|
||||
msg_warn("uid=%ld: ignoring attribute record: %.200s=%.200s",
|
||||
(long) info->st.st_uid, attr_name, attr_value);
|
||||
}
|
||||
msg_warn("uid=%ld: ignoring attribute record: %.200s=%.200s",
|
||||
(long) info->st.st_uid, attr_name, attr_value);
|
||||
continue;
|
||||
}
|
||||
if (type == REC_TYPE_RRTO)
|
||||
/* Use message header extracted information instead. */
|
||||
continue;
|
||||
if (type == REC_TYPE_ERTO)
|
||||
/* Use message header extracted information instead. */
|
||||
continue;
|
||||
if (type == REC_TYPE_INSP && info->st.st_uid != var_owner_uid)
|
||||
continue;
|
||||
if (type == REC_TYPE_FILT && info->st.st_uid != var_owner_uid)
|
||||
continue;
|
||||
else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user