]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-2.0.19 v2.0.19
authorWietse Venema <wietse@porcupine.org>
Fri, 12 Mar 2004 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <viktor@dukhovni.org>
Tue, 5 Feb 2013 15:51:50 +0000 (15:51 +0000)
postfix/HISTORY
postfix/src/global/mail_version.h
postfix/src/pickup/Makefile.in
postfix/src/pickup/pickup.c
postfix/src/trivial-rewrite/transport.c
postfix/src/util/match_ops.c

index c3b4f0d45885caa8ce538a03acf4bf6e0e20d706..5a315034715a095cbd75ba4e8615731a08fa621a 100644 (file)
@@ -7965,6 +7965,18 @@ Apologies for any names omitted.
 
        Portability: test -e is not portable. File: conf/postfix-script.
 
+20040302
+
+       Bugfix: the pickup daemon now strokes the watchdog frequently
+       to prevent the watchdog from barking when mail arrives
+       faster than it can be picked up. File: pickup/pickup.c.
+
+20040311
+
+       Bugfix: bad address syntax caused map lookup with zero-length
+       keys.  Problem reported by Andrei Koulik. Files:
+       util/match_ops.c, src/trivial-rewrite/transport.c.
+
 Open problems:
 
        Doc: mention the proxy_interfaces parameter everywhere the
index 35fd457689e4561e6ecf42a09abe65b9d76f20fd..253256add9d4845b7b23cc6e3c6cd9cf15f15b40 100644 (file)
   * 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      "20040122"
+#define MAIL_RELEASE_DATE      "20040312"
 
 #define VAR_MAIL_VERSION       "mail_version"
-#define DEF_MAIL_VERSION       "2.0.18"
+#define DEF_MAIL_VERSION       "2.0.19"
 extern char *var_mail_version;
 
  /*
index 9a078de4ff0c10fc0370761501d15d33a43176c7..c784890814fa7c9df2655d3016c5530bdc865200 100644 (file)
@@ -64,6 +64,7 @@ pickup.o: ../../include/vbuf.h
 pickup.o: ../../include/vstream.h
 pickup.o: ../../include/set_ugid.h
 pickup.o: ../../include/safe_open.h
+pickup.o: ../../include/watchdog.h
 pickup.o: ../../include/stringops.h
 pickup.o: ../../include/mail_queue.h
 pickup.o: ../../include/mail_open_ok.h
index 634352fe2d0e942e5070d97d1cf28dc17efb358a..5c47a924d3200ec0ec83023a3bc64673a257698b 100644 (file)
@@ -89,6 +89,7 @@
 #include <vstream.h>
 #include <set_ugid.h>
 #include <safe_open.h>
+#include <watchdog.h>
 #include <stringops.h>
 
 /* Global library. */
@@ -476,6 +477,10 @@ static void pickup_service(char *unused_buf, int unused_len,
      * still being written, or garbage. Leave it up to the sysadmin to remove
      * garbage. Keep scanning the queue directory until we stop removing
      * files from it.
+     * 
+     * When we find a file, stroke the watchdog so that it will not bark while
+     * some application is keeping us busy by injecting lots of mail into the
+     * maildrop directory.
      */
     queue_name = MAIL_QUEUE_MAILDROP;          /* XXX should be a list */
     do {
@@ -485,6 +490,7 @@ static void pickup_service(char *unused_buf, int unused_len,
            if (mail_open_ok(queue_name, id, &info.st, &path) == MAIL_OPEN_YES) {
                pickup_init(&info);
                info.path = mystrdup(path);
+               watchdog_pat();
                if (pickup_file(&info) == REMOVE_MESSAGE_FILE) {
                    if (REMOVE(info.path))
                        msg_warn("remove %s: %m", info.path);
index 3c0cfc8a3a223c8d37a7f0343e0bc11207536c9c..f96cae71497f345447a5d1be9866ffb721545da3 100644 (file)
@@ -281,7 +281,7 @@ int     transport_lookup(const char *addr, const char *rcpt_domain,
      * Specify that the lookup key is partial, to avoid matching partial keys
      * with regular expressions.
      */
-    for (name = ratsign + 1; /* void */ ; name = next) {
+    for (name = ratsign + 1; *name != 0; name = next) {
        if (find_transport_entry(name, rcpt_domain, PARTIAL, channel, nexthop))
            RETURN_FREE(FOUND);
        if (dict_errno != 0)
index 5d9e6a5d249d85f0159e4348072b319c93d6f50f..ea615d7c557fbb7ab88d96591a2e58f0b5d695ac 100644 (file)
@@ -139,7 +139,7 @@ int     match_hostname(int flags, const char *name, const char *pattern)
     if (strchr(pattern, ':') != 0) {
        temp = lowercase(mystrdup(name));
        match = 0;
-       for (entry = temp; /* void */ ; entry = next) {
+       for (entry = temp; *entry != 0; entry = next) {
            if ((match = (dict_lookup(pattern, entry) != 0)) != 0)
                break;
            if (dict_errno != 0)