Module Name: src Committed By: riz Date: Sun Feb 19 18:28:55 UTC 2012
Modified Files: src/doc [netbsd-6]: 3RDPARTY CHANGES src/external/ibm-public/postfix/dist [netbsd-6]: HISTORY src/external/ibm-public/postfix/dist/mantools [netbsd-6]: get_anchors.pl src/external/ibm-public/postfix/dist/src/bounce [netbsd-6]: bounce_trace_service.c src/external/ibm-public/postfix/dist/src/global [netbsd-6]: dict_ldap.c dict_sqlite.c mail_version.h maps.c src/external/ibm-public/postfix/dist/src/local [netbsd-6]: mailbox.c unknown.c src/external/ibm-public/postfix/dist/src/tlsproxy [netbsd-6]: tlsproxy.c src/external/ibm-public/postfix/dist/src/util [netbsd-6]: dict.c src/external/ibm-public/postfix/dist/src/xsasl [netbsd-6]: xsasl_dovecot_server.c Log Message: Apply patch (requested by tron in ticket #7): Import Postfix 2.8.8. Changes since Postfix 2.8.7: - The Postfix sqlite client, introduced with Postfix 2.8, had an embarassing bug in its quoting routine. As the result of a last-minute code cleanup before release, this routine returned the unquoted text instead of the quoted text. The opportunities for mis-use are limited: Postfix sqlite database files are usually owned by root, and Postfix daemons usually run with non-root privileges so they can't corrupt the database. This problem was reported by Rob McGee (rob0). - The Postfix 2.8.4 fix for local delivery agent database lookup errors was incomplete. The fix correctly added new code to detect database lookup errors with mailbox_transport_maps, mailbox_command_maps or fallback_transport_maps, but it failed to log the problem, and to produce a defer logfile record which is needed for "delayed mail" and "mail too old" delivery status notifications. - The trace(8) service, used for DSN SUCCESS notifications, did not distinguish between notifications for a non-bounce or a bounce message, causing it to "reply" to mail with the null sender address. Problem reported by Sabahattin Gucukoglu. - Support for Dovecot auth over TCP sockets, using code that already existed for testing purposes. Patrick Koetter kindly provided an update for the SASL_README file. - Workaround in the LDAP client for changes in the under-documented OpenLDAP API, by Victor Duchovni. I've fully tested this under NetBSD/i386 6.99.2 and build tested the patch for NetBSD/amd64 6.0_BETA. Kind regards P.S. This patch does *not* include SQLite support for Postfix to avoid scaring Jeff Rizzo. To generate a diff of this commit: cvs rdiff -u -r1.909 -r1.909.2.1 src/doc/3RDPARTY cvs rdiff -u -r1.1670 -r1.1670.2.1 src/doc/CHANGES cvs rdiff -u -r1.1.1.12 -r1.1.1.12.2.1 \ src/external/ibm-public/postfix/dist/HISTORY cvs rdiff -u -r1.1.1.1 -r1.1.1.1.12.1 \ src/external/ibm-public/postfix/dist/mantools/get_anchors.pl cvs rdiff -u -r1.1.1.1 -r1.1.1.1.12.1 \ src/external/ibm-public/postfix/dist/src/bounce/bounce_trace_service.c cvs rdiff -u -r1.1.1.3 -r1.1.1.3.6.1 \ src/external/ibm-public/postfix/dist/src/global/dict_ldap.c cvs rdiff -u -r1.1.1.1 -r1.1.1.1.8.1 \ src/external/ibm-public/postfix/dist/src/global/dict_sqlite.c cvs rdiff -u -r1.1.1.12 -r1.1.1.12.2.1 \ src/external/ibm-public/postfix/dist/src/global/mail_version.h cvs rdiff -u -r1.1.1.1 -r1.1.1.1.12.1 \ src/external/ibm-public/postfix/dist/src/global/maps.c cvs rdiff -u -r1.1.1.2 -r1.1.1.2.4.1 \ src/external/ibm-public/postfix/dist/src/local/mailbox.c \ src/external/ibm-public/postfix/dist/src/local/unknown.c cvs rdiff -u -r1.1.1.1 -r1.1.1.1.8.1 \ src/external/ibm-public/postfix/dist/src/tlsproxy/tlsproxy.c cvs rdiff -u -r1.1.1.3 -r1.1.1.3.6.1 \ src/external/ibm-public/postfix/dist/src/util/dict.c cvs rdiff -u -r1.1.1.3 -r1.1.1.3.6.1 \ src/external/ibm-public/postfix/dist/src/xsasl/xsasl_dovecot_server.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/doc/3RDPARTY diff -u src/doc/3RDPARTY:1.909 src/doc/3RDPARTY:1.909.2.1 --- src/doc/3RDPARTY:1.909 Fri Feb 10 23:46:25 2012 +++ src/doc/3RDPARTY Sun Feb 19 18:28:53 2012 @@ -1,4 +1,4 @@ -# $NetBSD: 3RDPARTY,v 1.909 2012/02/10 23:46:25 riz Exp $ +# $NetBSD: 3RDPARTY,v 1.909.2.1 2012/02/19 18:28:53 riz Exp $ # # This file contains a list of the software that has been integrated into # NetBSD where we are not the primary maintainer. @@ -905,7 +905,7 @@ formatting in man pages, disallowing flo and more. Package: postfix -Version: 2.8.7 +Version: 2.8.8 Current Vers: 2.8.8/2.9.0 Maintainer: Wietse Venema <wie...@porcupine.org> Archive Site: ftp://postfix.cloud9.net/official/ Index: src/doc/CHANGES diff -u src/doc/CHANGES:1.1670 src/doc/CHANGES:1.1670.2.1 --- src/doc/CHANGES:1.1670 Mon Feb 13 19:15:30 2012 +++ src/doc/CHANGES Sun Feb 19 18:28:53 2012 @@ -1,4 +1,4 @@ -# LIST OF CHANGES FROM LAST RELEASE: <$Revision: 1.1670 $> +# LIST OF CHANGES FROM LAST RELEASE: <$Revision: 1.1670.2.1 $> # # # [Note: This file does not mention every change made to the NetBSD source tree. @@ -1261,3 +1261,4 @@ Changes from NetBSD 5.0 to NetBSD 6.0: [dholland 20120212] quotarestore(8): New quota tool quotarestore for loading backups created with quotadump. [dholland 20120212] + postfix(1): Import version 2.8.8 [tron 20120217] Index: src/external/ibm-public/postfix/dist/HISTORY diff -u src/external/ibm-public/postfix/dist/HISTORY:1.1.1.12 src/external/ibm-public/postfix/dist/HISTORY:1.1.1.12.2.1 --- src/external/ibm-public/postfix/dist/HISTORY:1.1.1.12 Wed Nov 9 18:58:43 2011 +++ src/external/ibm-public/postfix/dist/HISTORY Sun Feb 19 18:28:53 2012 @@ -16695,3 +16695,55 @@ Apologies for any names omitted. Portability: OpenBSD 5.x is supported. Files: makedefs, util/sys_defs.h. + + Portability: Dovecot now officially supports more socket + types for its authentication server. File: + xsasl/xsasl_dovecot_server.c. + +20111126 + + Bitrot: changes in error reporting to the under-documented + OpenLDAP API. Problem reported by Quanah Gibson-Mount. Fix + by Viktor Dukhovni. File: global/dict_ldap.c. + +20111205 + + Bugfix: tlsproxy(8) stored TLS sessions with a serverID of + "tlsproxy" instead of "smtpd", wasting an opportunity for + session reuse. File: tlsproxy/tlsproxy.c. + +20111211 + + Bugfix: missing lookup table entry and terminator, causing + proxymap server segfault when postscreen(8) or verify(8) + attempted to access their cache via the proxymap server. + This could never have worked anyway, because the Postfix + 2.8 proxymap protocol does not support cache cleanup. File + util/dict.c. + +20111226 + + Bugfix (introduced 20110426): after lookup error with + mailbox_transport_maps, mailbox_command_maps or + fallback_transport_maps, the local delivery agent did not + log the problem before deferring mail, and produced no defer + logfile record. Files: local/mailbox.c, local/unknown.c. + +20120127 + + Bugfix (introduced: Postfix 2.8): the Postfix client sqlite + quoting routine returned the unquoted result instead of the + quoted text. The opportunities for misuse are limited, + because Postfix sqlite files are usually owned by root, and + Postfix daemons usually run with non-root privileges so + they can't corrupt the database. Problem reported by Rob + McGee (rob0). File: global/dict_sqlite.c. + +20120130 + + Bugfix (introduced: Postfix 2.3): the trace service did not + distinguish between notifications for a non-bounce or a + bounce message. This code pre-dates DSN support and should + have been updated when it was re-purposed to handle DSN + SUCCESS notifications. Problem reported by Sabahattin + Gucukoglu. File: bounce/bounce_trace_service.c. Index: src/external/ibm-public/postfix/dist/mantools/get_anchors.pl diff -u src/external/ibm-public/postfix/dist/mantools/get_anchors.pl:1.1.1.1 src/external/ibm-public/postfix/dist/mantools/get_anchors.pl:1.1.1.1.12.1 --- src/external/ibm-public/postfix/dist/mantools/get_anchors.pl:1.1.1.1 Tue Jun 23 10:08:36 2009 +++ src/external/ibm-public/postfix/dist/mantools/get_anchors.pl Sun Feb 19 18:28:54 2012 @@ -3,9 +3,9 @@ # Copyright (c) 2004 Liviu Daia <liviu.d...@imar.ro> # All rights reserved. # -# $Revision: 1.1.1.1 $ -# $Id: get_anchors.pl,v 1.1.1.1 2009/06/23 10:08:36 tron Exp $ -# $Source: /cvsroot/src/external/ibm-public/postfix/dist/mantools/get_anchors.pl,v $ +# Revision +# Id +# Source # use HTML::Parser; Index: src/external/ibm-public/postfix/dist/src/bounce/bounce_trace_service.c diff -u src/external/ibm-public/postfix/dist/src/bounce/bounce_trace_service.c:1.1.1.1 src/external/ibm-public/postfix/dist/src/bounce/bounce_trace_service.c:1.1.1.1.12.1 --- src/external/ibm-public/postfix/dist/src/bounce/bounce_trace_service.c:1.1.1.1 Tue Jun 23 10:08:42 2009 +++ src/external/ibm-public/postfix/dist/src/bounce/bounce_trace_service.c Sun Feb 19 18:28:54 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: bounce_trace_service.c,v 1.1.1.1 2009/06/23 10:08:42 tron Exp $ */ +/* $NetBSD: bounce_trace_service.c,v 1.1.1.1.12.1 2012/02/19 18:28:54 riz Exp $ */ /*++ /* NAME @@ -85,8 +85,39 @@ int bounce_trace_service(int flags, BOUNCE_INFO *bounce_info; int bounce_status = 1; VSTREAM *bounce; - VSTRING *new_id = vstring_alloc(10); + int notify_mask = name_mask(VAR_NOTIFY_CLASSES, mail_error_masks, + var_notify_classes); + VSTRING *new_id; int count; + const char *sender; + + /* + * For consistency with fail/delay notifications, send notification for a + * non-bounce message as a single-bounce message, send notification for a + * single-bounce message as a double-bounce message, and drop requests to + * send notification for a double-bounce message. + */ +#define NULL_SENDER MAIL_ADDR_EMPTY /* special address */ + + if (strcasecmp(recipient, mail_addr_double_bounce()) == 0) { + msg_info("%s: not sending trace/success notification for " + "double-bounce message", queue_id); + return (0); + } else if (*recipient == 0) { + if ((notify_mask & MAIL_ERROR_2BOUNCE) != 0) { + recipient = var_2bounce_rcpt; + sender = mail_addr_double_bounce(); + } else { + msg_info("%s: not sending trace/success notification " + "for single-bounce message", queue_id); + if (mail_queue_remove(service, queue_id) && errno != ENOENT) + msg_fatal("remove %s %s: %m", service, queue_id); + return (0); + } + } else { + /* Always send notification for non-bounce message. */ + sender = NULL_SENDER; + } /* * Initialize. Open queue file, bounce log, etc. @@ -128,7 +159,6 @@ int bounce_trace_service(int flags, bounce_mail_free(bounce_info); return (0); } -#define NULL_SENDER MAIL_ADDR_EMPTY /* special address */ #define NULL_TRACE_FLAGS 0 /* @@ -141,7 +171,8 @@ int bounce_trace_service(int flags, * there are fewer potential left-over files to remove up when we create * a new queue file. */ - if ((bounce = post_mail_fopen_nowait(NULL_SENDER, recipient, + new_id = vstring_alloc(10); + if ((bounce = post_mail_fopen_nowait(sender, recipient, INT_FILT_MASK_BOUNCE, NULL_TRACE_FLAGS, new_id)) != 0) { Index: src/external/ibm-public/postfix/dist/src/global/dict_ldap.c diff -u src/external/ibm-public/postfix/dist/src/global/dict_ldap.c:1.1.1.3 src/external/ibm-public/postfix/dist/src/global/dict_ldap.c:1.1.1.3.6.1 --- src/external/ibm-public/postfix/dist/src/global/dict_ldap.c:1.1.1.3 Wed Mar 2 19:32:14 2011 +++ src/external/ibm-public/postfix/dist/src/global/dict_ldap.c Sun Feb 19 18:28:54 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: dict_ldap.c,v 1.1.1.3 2011/03/02 19:32:14 tron Exp $ */ +/* $NetBSD: dict_ldap.c,v 1.1.1.3.6.1 2012/02/19 18:28:54 riz Exp $ */ /*++ /* NAME @@ -227,6 +227,7 @@ #include "mail_conf.h" #if defined(USE_LDAP_SASL) && defined(LDAP_API_FEATURE_X_OPENLDAP) + /* * SASL headers, for sasl_interact_t. Either SASL v1 or v2 should be fine. */ @@ -244,13 +245,13 @@ #define DICT_LDAP_DO_SASL(d) ((d)->bind == DICT_LDAP_BIND_SASL) static const NAME_CODE bindopt_table[] = { - CONFIG_BOOL_NO, DICT_LDAP_BIND_NONE, - "none", DICT_LDAP_BIND_NONE, - CONFIG_BOOL_YES, DICT_LDAP_BIND_SIMPLE, - "simple", DICT_LDAP_BIND_SIMPLE, + CONFIG_BOOL_NO, DICT_LDAP_BIND_NONE, + "none", DICT_LDAP_BIND_NONE, + CONFIG_BOOL_YES, DICT_LDAP_BIND_SIMPLE, + "simple", DICT_LDAP_BIND_SIMPLE, #ifdef LDAP_API_FEATURE_X_OPENLDAP #if defined(USE_LDAP_SASL) - "sasl", DICT_LDAP_BIND_SASL, + "sasl", DICT_LDAP_BIND_SASL, #endif #endif 0, -1, @@ -294,9 +295,9 @@ typedef struct { #ifdef LDAP_API_FEATURE_X_OPENLDAP #if defined(USE_LDAP_SASL) int sasl; - char *sasl_mechs; - char *sasl_realm; - char *sasl_authz; + char *sasl_mechs; + char *sasl_realm; + char *sasl_authz; int sasl_minssf; #endif int ldap_ssl; @@ -453,28 +454,26 @@ static int dict_ldap_set_errno(LDAP *ld, } #if defined(USE_LDAP_SASL) && defined(LDAP_API_FEATURE_X_OPENLDAP) + /* * Context structure for SASL property callback. */ typedef struct bind_props { - char *authcid; - char *passwd; - char *realm; - char *authzid; + char *authcid; + char *passwd; + char *realm; + char *authzid; } bind_props; -static int -ldap_b2_interact(LDAP *ld, unsigned flags, void *props, void *inter) +static int ldap_b2_interact(LDAP *ld, unsigned flags, void *props, void *inter) { sasl_interact_t *in; - bind_props *ctx = (bind_props *)props; + bind_props *ctx = (bind_props *) props; - for (in = inter; in->id != SASL_CB_LIST_END; in++) - { + for (in = inter; in->id != SASL_CB_LIST_END; in++) { in->result = NULL; - switch(in->id) - { + switch (in->id) { case SASL_CB_GETREALM: in->result = ctx->realm; break; @@ -493,6 +492,7 @@ ldap_b2_interact(LDAP *ld, unsigned flag } return LDAP_SUCCESS; } + #endif /* dict_ldap_result - Read and parse LDAP result */ @@ -500,6 +500,7 @@ ldap_b2_interact(LDAP *ld, unsigned flag static int dict_ldap_result(LDAP *ld, int msgid, int timeout, LDAPMessage **res) { struct timeval mytimeval; + int err; mytimeval.tv_sec = timeout; mytimeval.tv_usec = 0; @@ -508,9 +509,12 @@ static int dict_ldap_result(LDAP *ld, in if (ldap_result(ld, msgid, GET_ALL, &mytimeval, res) == -1) return (dict_ldap_get_errno(ld)); - if (dict_ldap_get_errno(ld) == LDAP_TIMEOUT) { - (void) dict_ldap_abandon(ld, msgid); - return (dict_ldap_set_errno(ld, LDAP_TIMEOUT)); + if ((err = dict_ldap_get_errno(ld)) != LDAP_SUCCESS) { + if (err == LDAP_TIMEOUT) { + (void) dict_ldap_abandon(ld, msgid); + return (dict_ldap_set_errno(ld, LDAP_TIMEOUT)); + } + return err; } return LDAP_SUCCESS; } @@ -531,7 +535,7 @@ static int dict_ldap_bind_sasl(DICT_LDAP vstring_sprintf(minssf, "minssf=%d", dict_ldap->sasl_minssf); if ((rc = ldap_set_option(dict_ldap->ld, LDAP_OPT_X_SASL_SECPROPS, - (char *) minssf)) != LDAP_OPT_SUCCESS) + (char *) minssf)) != LDAP_OPT_SUCCESS) return (rc); props.authcid = dict_ldap->bind_dn; @@ -540,13 +544,14 @@ static int dict_ldap_bind_sasl(DICT_LDAP props.authzid = dict_ldap->sasl_authz; if ((rc = ldap_sasl_interactive_bind_s(dict_ldap->ld, NULL, - dict_ldap->sasl_mechs, NULL, NULL, - LDAP_SASL_QUIET, ldap_b2_interact, - &props)) != LDAP_SUCCESS) + dict_ldap->sasl_mechs, NULL, NULL, + LDAP_SASL_QUIET, ldap_b2_interact, + &props)) != LDAP_SUCCESS) return (rc); return (LDAP_SUCCESS); } + #endif /* dict_ldap_bind_st - Synchronous simple auth with timeout */ @@ -554,6 +559,7 @@ static int dict_ldap_bind_sasl(DICT_LDAP static int dict_ldap_bind_st(DICT_LDAP *dict_ldap) { int rc; + int err = LDAP_SUCCESS; int msgid; LDAPMessage *res; struct berval cred; @@ -569,7 +575,8 @@ static int dict_ldap_bind_st(DICT_LDAP * return (rc); #define FREE_RESULT 1 - return (ldap_parse_sasl_bind_result(dict_ldap->ld, res, 0, FREE_RESULT)); + rc = ldap_parse_result(dict_ldap->ld, res, &err, 0, 0, 0, 0, FREE_RESULT); + return (rc == LDAP_SUCCESS ? err : rc); } /* search_st - Synchronous search with timeout */ @@ -870,6 +877,7 @@ static int dict_ldap_connect(DICT_LDAP * #define DN_LOG_VAL(dict_ldap) \ ((dict_ldap)->bind_dn[0] ? (dict_ldap)->bind_dn : "empty or implicit") + /* * If this server requires a bind, do so. Thanks to Sam Tardieu for * noticing that the original bind call was broken. @@ -1875,6 +1883,7 @@ DICT *dict_ldap_open(const char *ldaps #ifdef LDAP_API_FEATURE_X_OPENLDAP #if defined(USE_LDAP_SASL) + /* * SASL options */ Index: src/external/ibm-public/postfix/dist/src/global/dict_sqlite.c diff -u src/external/ibm-public/postfix/dist/src/global/dict_sqlite.c:1.1.1.1 src/external/ibm-public/postfix/dist/src/global/dict_sqlite.c:1.1.1.1.8.1 --- src/external/ibm-public/postfix/dist/src/global/dict_sqlite.c:1.1.1.1 Wed Mar 2 19:32:14 2011 +++ src/external/ibm-public/postfix/dist/src/global/dict_sqlite.c Sun Feb 19 18:28:54 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: dict_sqlite.c,v 1.1.1.1 2011/03/02 19:32:14 tron Exp $ */ +/* $NetBSD: dict_sqlite.c,v 1.1.1.1.8.1 2012/02/19 18:28:54 riz Exp $ */ /*++ /* NAME @@ -59,6 +59,12 @@ /* AUTHOR(S) /* Axel Steiner /* a...@treibsand.com +/* +/* Adopted and updated by: +/* Wietse Venema +/* IBM T.J. Watson Research +/* P.O. Box 704 +/* Yorktown Heights, NY 10598, USA /*--*/ /* System library. */ @@ -111,7 +117,7 @@ static void dict_sqlite_quote(DICT *dict /* Fix 20100616 */ if (quoted_text == 0) msg_fatal("dict_sqlite_quote: out of memory"); - vstring_strcat(result, raw_text); + vstring_strcat(result, quoted_text); sqlite3_free(quoted_text); } @@ -153,6 +159,11 @@ static const char *dict_sqlite_lookup(DI int status; /* + * In case of return without lookup (skipped key, etc.). + */ + dict_errno = 0; + + /* * Don't frustrate future attempts to make Postfix UTF-8 transparent. */ if (!valid_utf_8(name, strlen(name))) { Index: src/external/ibm-public/postfix/dist/src/global/mail_version.h diff -u src/external/ibm-public/postfix/dist/src/global/mail_version.h:1.1.1.12 src/external/ibm-public/postfix/dist/src/global/mail_version.h:1.1.1.12.2.1 --- src/external/ibm-public/postfix/dist/src/global/mail_version.h:1.1.1.12 Wed Nov 9 19:01:35 2011 +++ src/external/ibm-public/postfix/dist/src/global/mail_version.h Sun Feb 19 18:28:54 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: mail_version.h,v 1.1.1.12 2011/11/09 19:01:35 tron Exp $ */ +/* $NetBSD: mail_version.h,v 1.1.1.12.2.1 2012/02/19 18:28:54 riz Exp $ */ #ifndef _MAIL_VERSION_H_INCLUDED_ #define _MAIL_VERSION_H_INCLUDED_ @@ -22,8 +22,8 @@ * Patches change both the patchlevel and the release date. Snapshots have no * patchlevel; they change the release date only. */ -#define MAIL_RELEASE_DATE "20111105" -#define MAIL_VERSION_NUMBER "2.8.7" +#define MAIL_RELEASE_DATE "20120201" +#define MAIL_VERSION_NUMBER "2.8.8" #ifdef SNAPSHOT # define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE Index: src/external/ibm-public/postfix/dist/src/global/maps.c diff -u src/external/ibm-public/postfix/dist/src/global/maps.c:1.1.1.1 src/external/ibm-public/postfix/dist/src/global/maps.c:1.1.1.1.12.1 --- src/external/ibm-public/postfix/dist/src/global/maps.c:1.1.1.1 Tue Jun 23 10:08:47 2009 +++ src/external/ibm-public/postfix/dist/src/global/maps.c Sun Feb 19 18:28:54 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: maps.c,v 1.1.1.1 2009/06/23 10:08:47 tron Exp $ */ +/* $NetBSD: maps.c,v 1.1.1.1.12.1 2012/02/19 18:28:54 riz Exp $ */ /*++ /* NAME @@ -166,6 +166,11 @@ const char *maps_find(MAPS *maps, const DICT *dict; /* + * In case of return without map lookup (empty name or no maps). + */ + dict_errno = 0; + + /* * Temp. workaround, for buggy callers that pass zero-length keys when * given partial addresses. */ @@ -191,6 +196,7 @@ const char *maps_find(MAPS *maps, const *map_name, name, expansion); return (expansion); } else if (dict_errno != 0) { + msg_warn("%s:%s lookup of %s failed", dict->type, dict->name, name); break; } } Index: src/external/ibm-public/postfix/dist/src/local/mailbox.c diff -u src/external/ibm-public/postfix/dist/src/local/mailbox.c:1.1.1.2 src/external/ibm-public/postfix/dist/src/local/mailbox.c:1.1.1.2.4.1 --- src/external/ibm-public/postfix/dist/src/local/mailbox.c:1.1.1.2 Sun Jul 31 10:02:41 2011 +++ src/external/ibm-public/postfix/dist/src/local/mailbox.c Sun Feb 19 18:28:54 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: mailbox.c,v 1.1.1.2 2011/07/31 10:02:41 tron Exp $ */ +/* $NetBSD: mailbox.c,v 1.1.1.2.4.1 2012/02/19 18:28:54 riz Exp $ */ /*++ /* NAME @@ -291,7 +291,8 @@ int deliver_mailbox(LOCAL_STATE stat } else if (dict_errno != 0) { /* Details in the logfile. */ dsb_simple(state.msg_attr.why, "4.3.0", "table lookup failure"); - *statusp = DEL_STAT_DEFER; + *statusp = defer_append(BOUNCE_FLAGS(state.request), + BOUNCE_ATTR(state.msg_attr)); return (YES); } if (*var_mailbox_transport) { @@ -335,7 +336,8 @@ int deliver_mailbox(LOCAL_STATE stat } else if (dict_errno != 0) { /* Details in the logfile. */ dsb_simple(state.msg_attr.why, "4.3.0", "table lookup failure"); - status = DEL_STAT_DEFER; + status = defer_append(BOUNCE_FLAGS(state.request), + BOUNCE_ATTR(state.msg_attr)); } else if (*var_mailbox_command) { status = deliver_command(state, usr_attr, var_mailbox_command); } else if (*var_home_mailbox && LAST_CHAR(var_home_mailbox) == '/') { Index: src/external/ibm-public/postfix/dist/src/local/unknown.c diff -u src/external/ibm-public/postfix/dist/src/local/unknown.c:1.1.1.2 src/external/ibm-public/postfix/dist/src/local/unknown.c:1.1.1.2.4.1 --- src/external/ibm-public/postfix/dist/src/local/unknown.c:1.1.1.2 Sun Jul 31 10:02:41 2011 +++ src/external/ibm-public/postfix/dist/src/local/unknown.c Sun Feb 19 18:28:54 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: unknown.c,v 1.1.1.2 2011/07/31 10:02:41 tron Exp $ */ +/* $NetBSD: unknown.c,v 1.1.1.2.4.1 2012/02/19 18:28:54 riz Exp $ */ /*++ /* NAME @@ -74,6 +74,7 @@ #include <mail_addr.h> #include <sent.h> #include <deliver_pass.h> +#include <defer.h> /* Application-specific. */ @@ -122,7 +123,8 @@ int deliver_unknown(LOCAL_STATE stat } else if (dict_errno != 0) { /* Details in the logfile. */ dsb_simple(state.msg_attr.why, "4.3.0", "table lookup failure"); - return (DEL_STAT_DEFER); + return (defer_append(BOUNCE_FLAGS(state.request), + BOUNCE_ATTR(state.msg_attr))); } if (*var_fallback_transport) { state.msg_attr.rcpt.offset = -1L; Index: src/external/ibm-public/postfix/dist/src/tlsproxy/tlsproxy.c diff -u src/external/ibm-public/postfix/dist/src/tlsproxy/tlsproxy.c:1.1.1.1 src/external/ibm-public/postfix/dist/src/tlsproxy/tlsproxy.c:1.1.1.1.8.1 --- src/external/ibm-public/postfix/dist/src/tlsproxy/tlsproxy.c:1.1.1.1 Wed Mar 2 19:32:39 2011 +++ src/external/ibm-public/postfix/dist/src/tlsproxy/tlsproxy.c Sun Feb 19 18:28:54 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: tlsproxy.c,v 1.1.1.1 2011/03/02 19:32:39 tron Exp $ */ +/* $NetBSD: tlsproxy.c,v 1.1.1.1.8.1 2012/02/19 18:28:54 riz Exp $ */ /*++ /* NAME @@ -694,7 +694,7 @@ static void tlsp_start_tls(TLSP_STATE *s timeout = 0, /* unused */ requirecert = (var_tlsp_tls_req_ccert && var_tlsp_enforce_tls), - serverid = state->service, + serverid = MAIL_SERVICE_SMTPD, /* XXX */ namaddr = state->remote_endpt, cipher_grade = cipher_grade, cipher_exclusions = STR(cipher_exclusions), Index: src/external/ibm-public/postfix/dist/src/util/dict.c diff -u src/external/ibm-public/postfix/dist/src/util/dict.c:1.1.1.3 src/external/ibm-public/postfix/dist/src/util/dict.c:1.1.1.3.6.1 --- src/external/ibm-public/postfix/dist/src/util/dict.c:1.1.1.3 Wed Mar 2 19:32:41 2011 +++ src/external/ibm-public/postfix/dist/src/util/dict.c Sun Feb 19 18:28:54 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: dict.c,v 1.1.1.3 2011/03/02 19:32:41 tron Exp $ */ +/* $NetBSD: dict.c,v 1.1.1.3.6.1 2012/02/19 18:28:54 riz Exp $ */ /*++ /* NAME @@ -538,6 +538,8 @@ static const NAME_MASK dict_mask[] = { "no_unauth", (1 << 13), /* disallow unauthenticated data */ "fold_fix", (1 << 14), /* case-fold with fixed-case key map */ "fold_mul", (1 << 15), /* case-fold with multi-case key map */ + "open_lock", (1 << 16), /* permanent lock upon open */ + 0, }; /* dict_flags_str - convert mask to string for debugging purposes */ Index: src/external/ibm-public/postfix/dist/src/xsasl/xsasl_dovecot_server.c diff -u src/external/ibm-public/postfix/dist/src/xsasl/xsasl_dovecot_server.c:1.1.1.3 src/external/ibm-public/postfix/dist/src/xsasl/xsasl_dovecot_server.c:1.1.1.3.6.1 --- src/external/ibm-public/postfix/dist/src/xsasl/xsasl_dovecot_server.c:1.1.1.3 Wed Mar 2 19:32:48 2011 +++ src/external/ibm-public/postfix/dist/src/xsasl/xsasl_dovecot_server.c Sun Feb 19 18:28:54 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: xsasl_dovecot_server.c,v 1.1.1.3 2011/03/02 19:32:48 tron Exp $ */ +/* $NetBSD: xsasl_dovecot_server.c,v 1.1.1.3.6.1 2012/02/19 18:28:54 riz Exp $ */ /*++ /* NAME @@ -373,11 +373,6 @@ XSASL_SERVER_IMPL *xsasl_dovecot_server_ { XSASL_DOVECOT_SERVER_IMPL *xp; - if (strchr(path_info, '/') == 0) - msg_warn("when SASL type is \"%s\", SASL path \"%s\" " - "should be a socket pathname", - server_type, path_info); - xp = (XSASL_DOVECOT_SERVER_IMPL *) mymalloc(sizeof(*xp)); xp->xsasl.create = xsasl_dovecot_server_create; xp->xsasl.done = xsasl_dovecot_server_done;