2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-29 13:18:12 +00:00

postfix-2.5-20071204

This commit is contained in:
Wietse Venema 2033-08-08 05:53:24 -05:00 committed by Viktor Dukhovni
parent a98fc88914
commit 063ff5ac81
8 changed files with 32 additions and 16 deletions

View File

@ -13897,3 +13897,7 @@ Apologies for any names omitted.
Bugfix: the proxymap client didn't properly propagate the Bugfix: the proxymap client didn't properly propagate the
postmap (postalias) -r and -w options to the proxymap server. postmap (postalias) -r and -w options to the proxymap server.
File: util/dict.h. 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.

View File

@ -261,9 +261,10 @@ queues.
ination ination
logs logs
* The proxymap(8) servers provide read-only table lookup service to Postfix * The proxymap(8) servers provide read-only and read-write table lookup
processes. This overcomes chroot restrictions, and reduces the number of service to Postfix processes. This overcomes chroot restrictions, reduces
open lookup tables by sharing one open table among multiple processes. 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) * The scache(8) server maintains the connection cache for the Postfix smtp(8)
client. When connection caching is enabled for selected destinations, the client. When connection caching is enabled for selected destinations, the

View File

@ -532,10 +532,12 @@ ination<br> logs </td> </tr>
</table> </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, service to Postfix processes. This overcomes chroot restrictions,
and reduces the number of open lookup tables by sharing one open reduces the number of open lookup tables by sharing one open
table among multiple processes. </p> 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 <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 the Postfix <a href="smtp.8.html">smtp(8)</a> client. When connection caching is enabled for

View File

@ -67,7 +67,7 @@ PROXYMAP(8) PROXYMAP(8)
To implement single-updater maps, specify a process 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 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. This request is supported in Postfix 2.5 and later.

View File

@ -64,7 +64,8 @@ The \fImaptype:mapname\fR and \fIflags\fR are the same
as with the \fBopen\fR request. as with the \fBopen\fR request.
.sp .sp
To implement single-updater maps, specify a process limit 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 .sp
This request is supported in Postfix 2.5 and later. This request is supported in Postfix 2.5 and later.
.PP .PP

View File

@ -532,10 +532,12 @@ ination<br> logs </td> </tr>
</table> </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, service to Postfix processes. This overcomes chroot restrictions,
and reduces the number of open lookup tables by sharing one open reduces the number of open lookup tables by sharing one open
table among multiple processes. </p> table among multiple processes, and implements single-updater
tables. </p>
<li> <p> The scache(8) server maintains the connection cache for <li> <p> The scache(8) server maintains the connection cache for
the Postfix smtp(8) client. When connection caching is enabled for the Postfix smtp(8) client. When connection caching is enabled for

View File

@ -20,7 +20,7 @@
* Patches change both the patchlevel and the release date. Snapshots have no * Patches change both the patchlevel and the release date. Snapshots have no
* patchlevel; they change the release date only. * patchlevel; they change the release date only.
*/ */
#define MAIL_RELEASE_DATE "2007111203" #define MAIL_RELEASE_DATE "2007111204"
#define MAIL_VERSION_NUMBER "2.5" #define MAIL_VERSION_NUMBER "2.5"
#ifdef SNAPSHOT #ifdef SNAPSHOT

View File

@ -58,7 +58,8 @@
/* as with the \fBopen\fR request. /* as with the \fBopen\fR request.
/* .sp /* .sp
/* To implement single-updater maps, specify a process limit /* 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 /* .sp
/* This request is supported in Postfix 2.5 and later. /* This request is supported in Postfix 2.5 and later.
/* .PP /* .PP
@ -302,8 +303,6 @@ static DICT *proxy_map_find(const char *map_type_name, int request_flags,
request_flags); request_flags);
if (dict == 0) if (dict == 0)
msg_panic("proxy_map_find: dict_open null result"); 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); dict_register(STR(map_type_name_flags), dict);
return (dict); return (dict);
} }
@ -361,6 +360,12 @@ static void proxymap_update_service(VSTREAM *client_stream)
/* /*
* Process the request. * 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, if (attr_scan(client_stream, ATTR_FLAG_STRICT,
ATTR_TYPE_STR, MAIL_ATTR_TABLE, request_map, ATTR_TYPE_STR, MAIL_ATTR_TABLE, request_map,
@ -378,7 +383,8 @@ static void proxymap_update_service(VSTREAM *client_stream)
/* void */ ; /* void */ ;
} else { } else {
dict->flags = ((dict->flags & ~DICT_FLAG_RQST_MASK) 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)); dict_put(dict, STR(request_key), STR(request_value));
reply_status = PROXY_STAT_OK; reply_status = PROXY_STAT_OK;
} }