2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-23 10:28:06 +00:00

postfix-3.4-20180401

This commit is contained in:
Wietse Venema 2018-04-01 00:00:00 -05:00 committed by Viktor Dukhovni
parent 61fe98610d
commit 787f2e15f7
8 changed files with 65 additions and 8 deletions

View File

@ -23342,3 +23342,24 @@ Apologies for any names omitted.
built-in or service-defined parameters for ldap, *sql, etc.
database names. Problem reported by Christian Rößner. Files:
postconf/postconf_user.c.
20180224
Workaround: postconf build did not abort if the m4 command
is not installed (on a system that does have the make command,
the awk command, the perl command, and the C compiler?!).
File: postconf/extract_cfg.sh.
20180303
Portability: slight differences between MySQL and MariaDB.
Olli Hauer. File: global/dict_mysql.c.
20180306
Bugfix (introduced: 19990302): when luser_relay specifies
a non-existent local address, the luser_relay feature becomes
a black hole. Reported by Jørgen Thomsen. File: local/unknown.c.
Portability: FreeBSD 11 is supported. Files: makedefs,
util/sys_defs.h.

View File

@ -287,6 +287,15 @@ case "$SYSTEM.$RELEASE" in
: ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"}
: ${PLUGIN_LD="${CC} -shared"}
;;
FreeBSD.11*) SYSTYPE=FREEBSD11
: ${CC=cc}
: ${SHLIB_SUFFIX=.so}
: ${SHLIB_CFLAGS=-fPIC}
: ${SHLIB_LD="${CC} -shared"' -Wl,-soname,${LIB}'}
: ${SHLIB_RPATH='-Wl,-rpath,${SHLIB_DIR}'}
: ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"}
: ${PLUGIN_LD="${CC} -shared"}
;;
DragonFly.*) SYSTYPE=DRAGONFLY
;;
OpenBSD.2*) SYSTYPE=OPENBSD2

View File

@ -198,6 +198,14 @@
#include "dict_mysql.h"
/* MySQL 8.x API change */
#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 50023
#define DICT_MYSQL_SSL_VERIFY_SERVER_CERT MYSQL_OPT_SSL_VERIFY_SERVER_CERT
#elif MYSQL_VERSION_ID >= 80000
#define DICT_MYSQL_SSL_VERIFY_SERVER_CERT MYSQL_OPT_SSL_MODE
#endif
/* need some structs to help organize things */
typedef struct {
MYSQL *db;
@ -237,7 +245,7 @@ typedef struct {
char *tls_CAfile;
char *tls_CApath;
char *tls_ciphers;
#if MYSQL_VERSION_ID >= 50023
#if defined(DICT_MYSQL_SSL_VERIFY_SERVER_CERT)
int tls_verify_cert;
#endif
#endif
@ -656,9 +664,9 @@ static void plmysql_connect_single(DICT_MYSQL *dict_mysql, HOST *host)
dict_mysql->tls_key_file, dict_mysql->tls_cert_file,
dict_mysql->tls_CAfile, dict_mysql->tls_CApath,
dict_mysql->tls_ciphers);
#if MYSQL_VERSION_ID >= 50023
#if defined(DICT_MYSQL_SSL_VERIFY_SERVER_CERT)
if (dict_mysql->tls_verify_cert != -1)
mysql_options(host->db, MYSQL_OPT_SSL_VERIFY_SERVER_CERT,
mysql_options(host->db, DICT_MYSQL_SSL_VERIFY_SERVER_CERT,
&dict_mysql->tls_verify_cert);
#endif
#endif
@ -723,7 +731,7 @@ static void mysql_parse_config(DICT_MYSQL *dict_mysql, const char *mysqlcf)
dict_mysql->tls_CAfile = cfg_get_str(p, "tls_CAfile", NULL, 0, 0);
dict_mysql->tls_CApath = cfg_get_str(p, "tls_CApath", NULL, 0, 0);
dict_mysql->tls_ciphers = cfg_get_str(p, "tls_ciphers", NULL, 0, 0);
#if MYSQL_VERSION_ID >= 50023
#if defined(DICT_MYSQL_SSL_VERIFY_SERVER_CERT)
dict_mysql->tls_verify_cert = cfg_get_bool(p, "tls_verify_cert", -1);
#endif
#endif

View 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 "20180222"
#define MAIL_RELEASE_DATE "20180401"
#define MAIL_VERSION_NUMBER "3.4"
#ifdef SNAPSHOT

View File

@ -651,6 +651,7 @@ unknown.o: ../../include/argv.h
unknown.o: ../../include/attr.h
unknown.o: ../../include/been_here.h
unknown.o: ../../include/bounce.h
unknown.o: ../../include/canon_addr.h
unknown.o: ../../include/check_arg.h
unknown.o: ../../include/defer.h
unknown.o: ../../include/deliver_pass.h

View File

@ -73,11 +73,14 @@
#include <sent.h>
#include <deliver_pass.h>
#include <defer.h>
#include <canon_addr.h>
/* Application-specific. */
#include "local.h"
#define STREQ(x,y) (strcasecmp((x),(y)) == 0)
/* deliver_unknown - delivery for unknown recipients */
int deliver_unknown(LOCAL_STATE state, USER_ATTR usr_attr)
@ -85,6 +88,7 @@ int deliver_unknown(LOCAL_STATE state, USER_ATTR usr_attr)
const char *myname = "deliver_unknown";
int status;
VSTRING *expand_luser;
VSTRING *canon_luser;
static MAPS *transp_maps;
const char *map_transport;
@ -139,8 +143,20 @@ int deliver_unknown(LOCAL_STATE state, USER_ATTR usr_attr)
if (*var_luser_relay) {
state.msg_attr.unmatched = 0;
expand_luser = vstring_alloc(100);
canon_luser = vstring_alloc(100);
local_expand(expand_luser, var_luser_relay, &state, &usr_attr, (void *) 0);
status = deliver_resolve_addr(state, usr_attr, STR(expand_luser));
/* In case luser_relay specifies a domain-less address. */
canon_addr_external(canon_luser, vstring_str(expand_luser));
/* Assumes that the address resolver won't change the address. */
if (STREQ(vstring_str(canon_luser), state.msg_attr.rcpt.address)) {
dsb_simple(state.msg_attr.why, "5.1.1",
"unknown user: \"%s\"", state.msg_attr.user);
status = bounce_append(BOUNCE_FLAGS(state.request),
BOUNCE_ATTR(state.msg_attr));
} else {
status = deliver_resolve_addr(state, usr_attr, STR(expand_luser));
}
vstring_free(canon_luser);
vstring_free(expand_luser);
return (status);
}
@ -149,8 +165,6 @@ int deliver_unknown(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(state.msg_attr.user, MAIL_ADDR_MAIL_DAEMON)
|| STREQ(state.msg_attr.user, MAIL_ADDR_POSTMASTER)) {
msg_warn("required alias not found: %s", state.msg_attr.user);

View File

@ -38,6 +38,9 @@
# New York, NY 10011, USA
#--
# In case not installed.
m4 </dev/null || exit 1
# Flags to add db_common parameter names.
add_legacy_sql_query_params=
add_domain_param=

View File

@ -30,6 +30,7 @@
#if defined(FREEBSD2) || defined(FREEBSD3) || defined(FREEBSD4) \
|| defined(FREEBSD5) || defined(FREEBSD6) || defined(FREEBSD7) \
|| defined(FREEBSD8) || defined(FREEBSD9) || defined(FREEBSD10) \
|| defined(FREEBSD11) \
|| defined(BSDI2) || defined(BSDI3) || defined(BSDI4) \
|| defined(OPENBSD2) || defined(OPENBSD3) || defined(OPENBSD4) \
|| defined(OPENBSD5) || defined(OPENBSD6) \