2
0
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:
Wietse Venema 2002-06-13 00:00:00 -05:00 committed by Viktor Dukhovni
parent 866561e747
commit 97342c743c
8 changed files with 37 additions and 35 deletions

View File

@ -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.

View File

@ -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)

View File

@ -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>

View File

@ -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.

View File

@ -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.

View File

@ -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;
}

View File

@ -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

View File

@ -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 {