2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-09-01 14:45:32 +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, address must be handled sensibly. Files: global/resolve_clnt.c,
trivial-rewrite/resolve.c. It ain't perfect yet, but close. 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: Open problems:
Medium: old maildrop files are no longer readable by the Medium: old maildrop files are no longer readable by the
@@ -6630,8 +6639,8 @@ Open problems:
Low: all table lookups should consistently use internalized Low: all table lookups should consistently use internalized
(unquoted) or externalized (quoted) forms as lookup keys. (unquoted) or externalized (quoted) forms as lookup keys.
smtpd, qmgr, local, etc. use internalized forms as keys. smtpd, qmgr, local, etc. use unquoted address forms as
cleanup uses externalized forms. keys. cleanup uses quoted forms.
Low: sendmail does not store null command-line recipients. Low: sendmail does not store null command-line recipients.

View File

@@ -1,4 +1,3 @@
#
# VIRTUAL(5) VIRTUAL(5) # VIRTUAL(5) VIRTUAL(5)
# #
# NAME # NAME
@@ -132,8 +131,8 @@
# $inet_interfaces. # $inet_interfaces.
# #
# This functionality overlaps with functionality of # This functionality overlaps with functionality of
# the local alias(5) database. The difference is that # the local aliases(5) database. The difference is
# virtual mapping can be applied to non-local # that virtual mapping can be applied to non-local
# addresses. # addresses.
# #
# @domain address, address, ... # @domain address, address, ...
@@ -216,5 +215,4 @@
# P.O. Box 704 # P.O. Box 704
# Yorktown Heights, NY 10598, USA # Yorktown Heights, NY 10598, USA
# #
# 1 # VIRTUAL(5)
#

View File

@@ -1,5 +1,4 @@
<html> <head> </head> <body> <pre> <html> <head> </head> <body> <pre>
VIRTUAL(5) VIRTUAL(5) VIRTUAL(5) VIRTUAL(5)
<b>NAME</b> <b>NAME</b>
@@ -133,8 +132,8 @@ VIRTUAL(5) VIRTUAL(5)
$<i>inet_interfaces</i>. $<i>inet_interfaces</i>.
This functionality overlaps with functionality of This functionality overlaps with functionality of
the local <i>alias</i>(5) database. The difference is that the local <i>aliases</i>(5) database. The difference is
<b>virtual</b> mapping can be applied to non-local that <b>virtual</b> mapping can be applied to non-local
addresses. addresses.
@<i>domain</i> <i>address,</i> <i>address,</i> <i>...</i> @<i>domain</i> <i>address,</i> <i>address,</i> <i>...</i>
@@ -217,6 +216,5 @@ VIRTUAL(5) VIRTUAL(5)
P.O. Box 704 P.O. Box 704
Yorktown Heights, NY 10598, USA Yorktown Heights, NY 10598, USA
1 VIRTUAL(5)
</pre> </body> </html> </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. $\fRmydestination\fR, or when it is listed in $\fIinet_interfaces\fR.
.sp .sp
This functionality overlaps with functionality of the local 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. mapping can be applied to non-local addresses.
.IP "@\fIdomain address, address, ...\fR" .IP "@\fIdomain address, address, ...\fR"
Mail for any user in \fIdomain\fR is redirected to \fIaddress\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. # $\fRmydestination\fR, or when it is listed in $\fIinet_interfaces\fR.
# .sp # .sp
# This functionality overlaps with functionality of the local # 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. # mapping can be applied to non-local addresses.
# .IP "@\fIdomain address, address, ...\fR" # .IP "@\fIdomain address, address, ...\fR"
# Mail for any user in \fIdomain\fR is redirected to \fIaddress\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 */ /* 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"; char *myname = "cleanup_extracted_process";
VSTRING *clean_addr; VSTRING *clean_addr;
ARGV *rcpt; ARGV *rcpt;
char **cpp; 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) { if (type == REC_TYPE_RCPT) {
clean_addr = vstring_alloc(100); clean_addr = vstring_alloc(100);
cleanup_rewrite_internal(clean_addr, *buf ? buf : var_empty_addr); 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; return;
} }
if (type != REC_TYPE_END) { if (type != REC_TYPE_END) {
msg_warn("%s: unexpected record type %d in extracted segment", cleanup_out(state, type, buf, len);
state->queue_id, type);
state->errs |= CLEANUP_STAT_BAD;
return; return;
} }

View File

@@ -20,7 +20,7 @@
* Patches change the patchlevel and the release date. Snapshots change the * Patches change the patchlevel and the release date. Snapshots change the
* release date only, unless they include the same bugfix as a patch release. * 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 VAR_MAIL_VERSION "mail_version"
#define DEF_MAIL_VERSION "1.1.11-" MAIL_RELEASE_DATE #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) #define STREQ(x,y) (strcmp(x,y) == 0)
if (info->st.st_uid == var_owner_uid if (STREQ(attr_name, MAIL_ATTR_ENCODING)
|| (STREQ(attr_name, MAIL_ATTR_ENCODING)
&& (STREQ(attr_value, MAIL_ATTR_ENC_7BIT) && (STREQ(attr_value, MAIL_ATTR_ENC_7BIT)
|| STREQ(attr_value, MAIL_ATTR_ENC_8BIT) || STREQ(attr_value, MAIL_ATTR_ENC_8BIT)
|| STREQ(attr_value, MAIL_ATTR_ENC_NONE)))) { || STREQ(attr_value, MAIL_ATTR_ENC_NONE))) {
rec_fprintf(cleanup, REC_TYPE_ATTR, "%s=%s", rec_fprintf(cleanup, REC_TYPE_ATTR, "%s=%s",
attr_name, attr_value); attr_name, attr_value);
continue; } else if (info->st.st_uid != var_owner_uid) {
}
msg_warn("uid=%ld: ignoring attribute record: %.200s=%.200s", msg_warn("uid=%ld: ignoring attribute record: %.200s=%.200s",
(long) info->st.st_uid, attr_name, attr_value); (long) info->st.st_uid, attr_name, attr_value);
}
continue; 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) if (type == REC_TYPE_FILT && info->st.st_uid != var_owner_uid)
continue; continue;
else { else {