]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-1.1.11-20021015
authorWietse Venema <wietse@porcupine.org>
Tue, 15 Oct 2002 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <viktor@dukhovni.org>
Tue, 5 Feb 2013 06:28:19 +0000 (06:28 +0000)
postfix/HISTORY
postfix/RELEASE_NOTES
postfix/src/global/mail_version.h
postfix/src/lmtp/lmtp_proto.c
postfix/src/local/Makefile.in
postfix/src/local/alias.c
postfix/src/local/unknown.c
postfix/src/util/dict_ldap.c

index 9794bb62db85b73b8616618ebc5ddc53e56c0775..82b4f56cc017df78724b4470452631c392ecc2dd 100644 (file)
@@ -7058,6 +7058,16 @@ Apologies for any names omitted.
        Default limit:  50 kbytes. Files:  global/mime_state.c,
        cleanup/cleanup_message.c.
 
+20021015
+
+       Bugfix: the code for missing postmaster/mailer-daemon
+       aliases had to be moved after the code that implements the
+       luser_relay feature. Files: local/alias.c, local/unknown.c.
+
+       Weird? The LMTP client lowercased the MAIL FROM and RCPT
+       TO addresses. Some remnant of code that someone put in
+       there long ago. File: lmtp/lmtp_proto.c.
+
 Open problems:
 
        Low: smtpd should log queue ID with reject/warn/hold/discard
index 5e0fbbdd3d6d39b5455a0e6256ed62ef657aa7ce..dae0deefc9a191ebc12ee00468e20150d7aa9271 100644 (file)
@@ -12,6 +12,12 @@ snapshot release).  Patches change the patchlevel and the release
 date. Snapshots change only the release date, unless they include
 the same bugfixes as a patch release.
 
+Incompatible changes with Postfix snapshot 1.1.11-20021015
+==========================================================
+
+The Postfix LMTP client no longer lowercases email addresses in
+MAIL FROM and RCPT TO commands.
+
 Incompatible changes with Postfix snapshot 1.1.11-20021013
 ==========================================================
 
index cf8746606a031d3d0d362deb30c96878bd669397..24195af1065ed209341e50cd2eba8f9a0b0f0019 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      "20021013"
+#define MAIL_RELEASE_DATE      "20021015"
 
 #define VAR_MAIL_VERSION       "mail_version"
 #define DEF_MAIL_VERSION       "1.1.11-" MAIL_RELEASE_DATE
index b7b3ea62c06afd99608a9b6fb7ef55c75bbf7145..de41ac15fe3e0a56f94c07dbdee8e3907fd4b1b5 100644 (file)
@@ -307,7 +307,6 @@ static int lmtp_loop(LMTP_STATE *state, int send_state, int recv_state)
 #define REWRITE_ADDRESS(dst, src) do { \
          if (*(src)) { \
              quote_821_local(dst, src); \
-             lowercase(vstring_str(dst)); \
          } else { \
              vstring_strcpy(dst, src); \
          } \
index c5929d49f5532369a003eba18d09e6c9d2e6d4b3..82c704f41d3cb25f4c6b35e6972ff63166bf3326 100644 (file)
@@ -74,8 +74,6 @@ alias.o: ../../include/stringops.h
 alias.o: ../../include/vstring.h
 alias.o: ../../include/mymalloc.h
 alias.o: ../../include/mail_params.h
-alias.o: ../../include/mail_addr.h
-alias.o: ../../include/sent.h
 alias.o: ../../include/defer.h
 alias.o: ../../include/bounce.h
 alias.o: ../../include/maps.h
@@ -484,6 +482,8 @@ unknown.o: ../../include/vstream.h
 unknown.o: ../../include/iostuff.h
 unknown.o: ../../include/attr.h
 unknown.o: ../../include/bounce.h
+unknown.o: ../../include/mail_addr.h
+unknown.o: ../../include/sent.h
 unknown.o: local.h
 unknown.o: ../../include/htable.h
 unknown.o: ../../include/tok822.h
index d761c7b5ac7a197d67ebfae1964fd9e028e2b991..3145cbd407aa56364e49570d8cd4b9309e930acf 100644 (file)
@@ -82,8 +82,6 @@
 /* Global library. */
 
 #include <mail_params.h>
-#include <mail_addr.h>
-#include <sent.h>
 #include <defer.h>
 #include <maps.h>
 #include <bounce.h>
@@ -303,19 +301,6 @@ int     deliver_alias(LOCAL_STATE state, USER_ATTR usr_attr,
        }
     }
 
-    /*
-     * If no alias was found for a required reserved name, toss the message
-     * into the bit bucket, and issue a warning instead.
-     */
-#define STREQ(x,y) (strcasecmp(x,y) == 0)
-
-    if (STREQ(name, MAIL_ADDR_MAIL_DAEMON)
-       || STREQ(name, MAIL_ADDR_POSTMASTER)) {
-       msg_warn("required alias not found: %s", name);
-       *statusp = sent(SENT_ATTR(state.msg_attr), "discarded");
-       return (YES);
-    }
-
     /*
      * Try delivery to a local user instead.
      */
index c24ef79f101be8d8182fd66f5e9a555268253290..8904159a3a3a5f91f3e41ade48a4edcf1c5f5966 100644 (file)
 /* System library. */
 
 #include <sys_defs.h>
+#include <string.h>
+
+#ifdef STRCASECMP_IN_STRINGS_H
+#include <strings.h>
+#endif
 
 /* Utility library. */
 
@@ -64,6 +69,8 @@
 #include <mail_params.h>
 #include <mail_proto.h>
 #include <bounce.h>
+#include <mail_addr.h>
+#include <sent.h>
 
 /* Application-specific. */
 
@@ -100,27 +107,36 @@ int     deliver_unknown(LOCAL_STATE state, USER_ATTR usr_attr)
        return (deliver_pass(MAIL_CLASS_PRIVATE, var_fallback_transport,
                             state.request, state.msg_attr.recipient, -1L));
 
-    /*
-     * Bounce the message when no luser relay is specified.
-     */
-    if (*var_luser_relay == 0)
-       return (bounce_append(BOUNCE_FLAG_KEEP, BOUNCE_ATTR(state.msg_attr),
-                             "unknown user: \"%s\"", state.msg_attr.local));
-
     /*
      * Subject the luser_relay address to $name expansion, disable
      * propagation of unmatched address extension, and re-inject the address
-     * into the delivery machinery. Donot give special treatment to "|stuff"
+     * into the delivery machinery. Do not give special treatment to "|stuff"
      * or /stuff.
      */
-    state.msg_attr.unmatched = 0;
-    expand_luser = vstring_alloc(100);
-    local_expand(expand_luser, var_luser_relay, &state, &usr_attr, (char *) 0);
-    status = deliver_resolve_addr(state, usr_attr, vstring_str(expand_luser));
-    vstring_free(expand_luser);
+    if (*var_luser_relay) {
+       state.msg_attr.unmatched = 0;
+       expand_luser = vstring_alloc(100);
+       local_expand(expand_luser, var_luser_relay, &state, &usr_attr, (char *) 0);
+       status = deliver_resolve_addr(state, usr_attr, vstring_str(expand_luser));
+       vstring_free(expand_luser);
+       return (status);
+    }
 
     /*
-     * Done.
+     * If no alias was found for a required reserved name, toss the message
+     * into the bit bucket, and issue a warning instead.
+     */
+#define STREQ(x,y) (strcasecmp(x,y) == 0)
+
+    if (STREQ(state.msg_attr.local, MAIL_ADDR_MAIL_DAEMON)
+       || STREQ(state.msg_attr.local, MAIL_ADDR_POSTMASTER)) {
+       msg_warn("required alias not found: %s", state.msg_attr.local);
+       return (sent(SENT_ATTR(state.msg_attr), "discarded"));
+    }
+
+    /*
+     * Bounce the message when no luser relay is specified.
      */
-    return (status);
+    return (bounce_append(BOUNCE_FLAG_KEEP, BOUNCE_ATTR(state.msg_attr),
+                         "unknown user: \"%s\"", state.msg_attr.local));
 }
index e8e7683eab14f79397b0fc1abf28a69627beb76a..8b21278d45af90a69df0d75bb8cb68a5a7d49c35 100644 (file)
@@ -589,7 +589,7 @@ static void dict_ldap_get_values(DICT_LDAP *dict_ldap, LDAPMessage * res,
            }
            ldap_value_free(vals);
        }
-       if (ber != NULL)
+       if (ber)
            ber_free(ber, 0);
     }
     if (msg_verbose)