]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-1.1.11-20020613
authorWietse Venema <wietse@porcupine.org>
Thu, 13 Jun 2002 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <viktor@dukhovni.org>
Tue, 5 Feb 2013 06:28:05 +0000 (06:28 +0000)
postfix/HISTORY
postfix/conf/virtual
postfix/html/virtual.5.html
postfix/man/man5/virtual.5
postfix/proto/virtual
postfix/src/cleanup/cleanup_extracted.c
postfix/src/global/mail_version.h
postfix/src/pickup/pickup.c

index d319941eb7b84a766162cc7fc4bd9d6827676075..d2b4339bea70f97ac3e53a8262e6f8e626613515 100644 (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.
 
index 1a093feb3a521afdddfc80a4ef975e635ad6cfbd..338aa6439048cd45aaf9e0dc1d81e0196487701f 100644 (file)
@@ -1,4 +1,3 @@
-# 
 # VIRTUAL(5)                                             VIRTUAL(5)
 # 
 # NAME
 #               $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, ...
 #        P.O. Box 704
 #        Yorktown Heights, NY 10598, USA
 # 
-#                                                                 1
-# 
+#                                                        VIRTUAL(5)
index 4e716c41e43a234b5b5e3b61838abb744fccca12..0a1f49a699ec4c8c7571009098053397faee4a21 100644 (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>
index 4ddc5d42e689a9d8761de1cedb62cfc6015564b9..780581039a5e46595175be80c0250bd4bba3b4f1 100644 (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.
index 214eb88826a98872ca7b5a169f8cb4b7a2f1b009..7255da7ca6f0eb964664eba7786ccb047eee61e9 100644 (file)
 #      $\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.
index 53faf57b6819aba895642fa246855fe8d83fa036..a1c9d6b079ba197894d05e5e77669f3c2131bbf7 100644 (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;
     }
 
index 93cf88a40712e48edca2537d0f3a31559ee4994b..c3a43af0ca4addc1283b188ec77dd88947e0e6e7 100644 (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
index 6357fd79083215a0ee1a6a1d917e5cff4dbe9df4..e50c721172a10de70e545178934bcea95f0f51d3 100644 (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 {