]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-2.5-20071204
authorWietse Venema <wietse@porcupine.org>
Mon, 8 Aug 2033 10:53:24 +0000 (05:53 -0500)
committerViktor Dukhovni <viktor@dukhovni.org>
Tue, 5 Feb 2013 06:33:33 +0000 (06:33 +0000)
postfix/HISTORY
postfix/README_FILES/OVERVIEW
postfix/html/OVERVIEW.html
postfix/html/proxymap.8.html
postfix/man/man8/proxymap.8
postfix/proto/OVERVIEW.html
postfix/src/global/mail_version.h
postfix/src/proxymap/proxymap.c

index 815a6d9c4912b8147c649b6d3581b88a159c7013..c82088f234563010869104afa536146e31824a89 100644 (file)
@@ -13897,3 +13897,7 @@ Apologies for any names omitted.
        Bugfix: the proxymap client didn't properly propagate the
        postmap (postalias) -r and -w options to the proxymap server.
        File: util/dict.h.
+
+       Workaround: force synchronous updates in the proxymap server
+       so that maps will be in a consistent state between updates.
+       File: proxymap/proxymap.c.
index 8c95184de2c33ffa4539fe024b29b8b920afbdb4..cc6e8322203f9feada6e7fd7d0fd11623a305ff6 100644 (file)
@@ -261,9 +261,10 @@ queues.
                                    ination
                                     logs
 
-  * The proxymap(8) servers provide read-only table lookup service to Postfix
-    processes. This overcomes chroot restrictions, and reduces the number of
-    open lookup tables by sharing one open table among multiple processes.
+  * The proxymap(8) servers provide read-only and read-write table lookup
+    service to Postfix processes. This overcomes chroot restrictions, reduces
+    the number of open lookup tables by sharing one open table among multiple
+    processes, and implements single-updater tables.
 
   * The scache(8) server maintains the connection cache for the Postfix smtp(8)
     client. When connection caching is enabled for selected destinations, the
index 62f4afeceeebe107f6978d92aad8eb87bc72de56..693f082ccab45559b09d5857e73c0713a02b7672 100644 (file)
@@ -532,10 +532,12 @@ ination<br> logs </td> </tr>
 
 </table>
 
-<li> <p> The <a href="proxymap.8.html">proxymap(8)</a> servers provide read-only table lookup
+<li> <p> The <a href="proxymap.8.html">proxymap(8)</a> servers provide read-only and read-write
+table lookup
 service to Postfix processes. This overcomes chroot restrictions,
-and reduces the number of open lookup tables by sharing one open
-table among multiple processes. </p>
+reduces the number of open lookup tables by sharing one open
+table among multiple processes, and implements single-updater
+tables. </p>
 
 <li> <p> The <a href="scache.8.html">scache(8)</a> server maintains the connection cache for
 the Postfix <a href="smtp.8.html">smtp(8)</a> client. When connection caching is enabled for
index 11c11055dc807f4b10f2de453ecc046f3859d7ce..39a39c76047cab7d532d25ff42c7e04b3777bd8f 100644 (file)
@@ -67,7 +67,7 @@ PROXYMAP(8)                                                        PROXYMAP(8)
 
               To implement single-updater maps, specify a process
               limit  of  1  in  the  <a href="master.5.html">master.cf</a> file entry for the
-              proxywrite service.
+              <b>proxywrite</b> service.
 
               This request is supported in Postfix 2.5 and later.
 
index 74a161c162a0381a9bd6efe1afee2fec5c912803..205e967c4edc32dffbd7f3a934d8390b54d4b630 100644 (file)
@@ -64,7 +64,8 @@ The \fImaptype:mapname\fR and \fIflags\fR are the same
 as with the \fBopen\fR request.
 .sp
 To implement single-updater maps, specify a process limit
-of 1 in the master.cf file entry for the proxywrite service.
+of 1 in the master.cf file entry for the \fBproxywrite\fR
+service.
 .sp
 This request is supported in Postfix 2.5 and later.
 .PP
index 2a25fc398dd6d793e13ac5eda10e261f957004be..924f38695dc5d76a0e010de89ebf425c1f6eb7b9 100644 (file)
@@ -532,10 +532,12 @@ ination<br> logs </td> </tr>
 
 </table>
 
-<li> <p> The proxymap(8) servers provide read-only table lookup
+<li> <p> The proxymap(8) servers provide read-only and read-write
+table lookup
 service to Postfix processes. This overcomes chroot restrictions,
-and reduces the number of open lookup tables by sharing one open
-table among multiple processes. </p>
+reduces the number of open lookup tables by sharing one open
+table among multiple processes, and implements single-updater
+tables. </p>
 
 <li> <p> The scache(8) server maintains the connection cache for
 the Postfix smtp(8) client. When connection caching is enabled for
index dd540c643823b25b4f789c37891794986da084b7..287cba84b874616ceaa26e68aeb0cd2cf0841d81 100644 (file)
@@ -20,7 +20,7 @@
   * Patches change both the patchlevel and the release date. Snapshots have no
   * patchlevel; they change the release date only.
   */
-#define MAIL_RELEASE_DATE      "2007111203"
+#define MAIL_RELEASE_DATE      "2007111204"
 #define MAIL_VERSION_NUMBER    "2.5"
 
 #ifdef SNAPSHOT
index a23a310312a91879f1d874dd844f8d78a4b2ec1f..c3b5e23d43a6afd83bb4da1bb8d830972525b2c2 100644 (file)
@@ -58,7 +58,8 @@
 /*     as with the \fBopen\fR request.
 /* .sp
 /*     To implement single-updater maps, specify a process limit
-/*     of 1 in the master.cf file entry for the proxywrite service.
+/*     of 1 in the master.cf file entry for the \fBproxywrite\fR
+/*     service.
 /* .sp
 /*     This request is supported in Postfix 2.5 and later.
 /* .PP
@@ -302,8 +303,6 @@ static DICT *proxy_map_find(const char *map_type_name, int request_flags,
                         request_flags);
     if (dict == 0)
        msg_panic("proxy_map_find: dict_open null result");
-    if (proxy_writer)
-       dict->flags |= DICT_FLAG_SYNC_UPDATE;
     dict_register(STR(map_type_name_flags), dict);
     return (dict);
 }
@@ -361,6 +360,12 @@ static void proxymap_update_service(VSTREAM *client_stream)
 
     /*
      * Process the request.
+     * 
+     * XXX We don't close maps, so we must turn on synchronous update to ensure
+     * that the on-disk data is in a consistent state between updates.
+     * 
+     * XXX We ignore duplicates, because the proxymap server would abort
+     * otherwise.
      */
     if (attr_scan(client_stream, ATTR_FLAG_STRICT,
                  ATTR_TYPE_STR, MAIL_ATTR_TABLE, request_map,
@@ -378,7 +383,8 @@ static void proxymap_update_service(VSTREAM *client_stream)
         /* void */ ;
     } else {
        dict->flags = ((dict->flags & ~DICT_FLAG_RQST_MASK)
-                      | (request_flags & DICT_FLAG_RQST_MASK));
+                      | (request_flags & DICT_FLAG_RQST_MASK)
+                      | DICT_FLAG_SYNC_UPDATE | DICT_FLAG_DUP_REPLACE);
        dict_put(dict, STR(request_key), STR(request_value));
        reply_status = PROXY_STAT_OK;
     }