]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-3.2-20160224
authorWietse Venema <wietse@porcupine.org>
Wed, 24 Feb 2016 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <postfix-users@dukhovni.org>
Thu, 25 Feb 2016 07:17:50 +0000 (02:17 -0500)
21 files changed:
postfix/HISTORY
postfix/RELEASE_NOTES-3.1
postfix/WISHLIST
postfix/conf/postfix-tls-script
postfix/html/postfix-tls.1.html
postfix/man/man1/postfix-tls.1
postfix/src/dns/Makefile.in
postfix/src/dns/dns.h
postfix/src/dns/dns_lookup.c
postfix/src/dns/dns_str_resflags.c [new file with mode: 0644]
postfix/src/dns/dnsbl_ttl_127.0.0.1_bind_ncache.ref
postfix/src/dns/dnsbl_ttl_127.0.0.1_bind_plain.ref
postfix/src/dns/dnsbl_ttl_127.0.0.2_bind_plain.ref
postfix/src/dns/error.ref
postfix/src/dns/mxonly_test.ref
postfix/src/dns/no-a.ref
postfix/src/dns/no-aaaa.ref
postfix/src/dns/no-mx.ref
postfix/src/dns/nullmx_test.ref
postfix/src/dns/nxdomain_test.ref
postfix/src/global/mail_version.h

index e9c8bfa12fe6778c500372ba26831e99d50f1e65..1bbaaf43029241cea0ea2cc42957d64a877f3bcf 100644 (file)
@@ -22186,3 +22186,10 @@ Apologies for any names omitted.
        complicating troubleshooting.  The fix is to log additional
        context to clarify that this "no match" condition is for
        smtpd_log_access_permit_actions. File: smtpd/smtpd_check.c.
+
+20150709
+
+       Cleanup: un-break some DNS unit tests by replacing non-portable
+       numerical flags with portable symbolic names in the verbose
+       command output.  Files: dns/dns_str_resflags.c, dns/dns_lookup.c,
+       dns/Makefile.in, many *.ref files.
index 5a5eed240b32ed7d60d68f33745a93f7bd8c20ca..aa2fbf25719eb668e3c059882459d185bafa6f83 100644 (file)
@@ -14,6 +14,7 @@ The mail_release_date configuration parameter (format: yyyymmdd)
 specifies the release date of a stable release or snapshot release.
 
 If you upgrade from Postfix 2.11 or earlier, read RELEASE_NOTES-3.0
+before proceeding.
 
 Major changes - address verification safety
 -------------------------------------------
@@ -127,9 +128,6 @@ with a corresponding "smtpd_policy_service_policy_context" configuration
 parameter.  Originally, this was implemented to share the same SMTPD
 policy service endpoint among multiple check_policy_service clients.
 
-Incompatible change with Postfix snapshot 20150721
-==================================================
-
 Major changes - tls
 -------------------
 
@@ -146,15 +144,6 @@ existence of a secure TLSA record implies that the host wants to
 talk TLS and not plaintext. For details see the
 smtp_tls_dane_insecure_mx_policy configuration parameter.
 
-[Incompat 20150719] The default Diffie-Hellman non-export prime was
-updated from 1024 to 2048 bits, because SMTP clients are starting
-to reject TLS handshakes with primes smaller than 2048 bits.
-
-Historically, this prime size is not negotiable, and each site needs
-to determine which prime size works best for the majority of its
-clients. See FORWARD_SECRECY_README for some hints in the quick-start
-section.
-
 [Incompat 20150721] As of the middle of 2015, all supported Postfix
 releases no longer enable "export" grade ciphers for opportunistic
 TLS, and no longer use the deprecated SSLv2 and SSLv3 protocols for
@@ -186,3 +175,12 @@ selective, use "-o name=value" parameter overrides on specific
 services in master.cf. Execute the command "postfix reload" to make
 the changes effective.
 
+[Incompat 20150719] The default Diffie-Hellman non-export prime was
+updated from 1024 to 2048 bits, because SMTP clients are starting
+to reject TLS handshakes with primes smaller than 2048 bits.
+
+Historically, this prime size is not negotiable, and each site needs
+to determine which prime size works best for the majority of its
+clients. See FORWARD_SECRECY_README for some hints in the quick-start
+section.
+
index d1e40fa684bc93bb490ef8ea284b9381cc9bb457..bf116d65fc9f4a37920a3c29e9f8823904bd9335 100644 (file)
@@ -8,6 +8,9 @@ Wish list:
 
        Fix "make test" bitrot.
 
+       Document dns_ncache_ttl_fix_enable use case in POSTSCREEN_README
+       and RELEASE_NOTES.
+
        Remove this file from the stable release.
 
        Things to do after the stable release:
index c8e991e59a57dca88e842785aa84f93a8073601c..c43ed10dc0c287f240c5248a9804e13f30cbc089 100644 (file)
 #      and certificate).  After the new certificate and key are
 #      deployed any obsolete keys and certificates may be removed
 #      by hand.   The \fIkeyfile\fR and \fIcertfile\fR filenames
-#      are relative to the Postfix configuration directory.
+#      may be relative to the Postfix configuration directory.
 # .IP "\fBoutput-server-csr\fR [\fB-k \fIkeyfile\fR] [\fIhostname\fB...\fR]"
 #      Write to stdout a certificate signing request (CSR) for the
 #      specified \fIkeyfile\fR.
 # .sp
-#      Instead of a filename, \fIkeyfile\fR may specify one of the
+#      Instead of an absolute pathname or a pathname relative to
+#      $config_directory, \fIkeyfile\fR may specify one of the
 #      supported key algorithm names (see "\fBpostconf -T
 #      public-key-algorithms\fR"). In that case, the corresponding
 #      setting from main.cf is used to locate the \fIkeyfile\fR.
 #      the specified \fIkeyfile\fR values.  The default \fIhostname\fR
 #      is the value of the \fBmyhostname\fR main.cf parameter.
 # .sp
-#      Instead of filenames, the \fIkeyfile\fR list may specify
+#      Instead of absolute pathnames or pathnames relative to
+#      $config_directory, the \fIkeyfile\fR list may specify
 #      names of supported public key algorithms (see "\fBpostconf
 #      -T public-key-algorithms\fR").  In that case, the actual
 #      \fIkeyfile\fR list uses the values of the corresponding
index 520c0bd972ac8120b5e0505cf44e98b976d84a17..d34989dc9088a65cff70e460b24260afe5fc63bb 100644 (file)
@@ -115,31 +115,33 @@ POSTFIX-TLS(1)                                                  POSTFIX-TLS(1)
               to  deploy  the  generated  key and certificate).  After the new
               certificate and key are deployed any obsolete keys and  certifi-
               cates  may  be removed by hand.   The <i>keyfile</i> and <i>certfile</i> file-
-              names are relative to the Postfix configuration directory.
+              names may be relative to the Postfix configuration directory.
 
        <b>output-server-csr</b> [<b>-k</b> <i>keyfile</i>] [<i>hostname</i><b>...</b>]
               Write to stdout a certificate  signing  request  (CSR)  for  the
               specified <i>keyfile</i>.
 
-              Instead  of a filename, <i>keyfile</i> may specify one of the supported
-              key algorithm names (see "<b>postconf  -T  public-key-algorithms</b>").
-              In  that case, the corresponding setting from <a href="postconf.5.html">main.cf</a> is used to
+              Instead  of an absolute pathname or a pathname relative to $<a href="postconf.5.html#config_directory">con</a>-
+              <a href="postconf.5.html#config_directory">fig_directory</a>, <i>keyfile</i> may specify  one  of  the  supported  key
+              algorithm  names  (see  "<b>postconf -T public-key-algorithms</b>"). In
+              that case, the corresponding setting from  <a href="postconf.5.html">main.cf</a>  is  used  to
               locate the <i>keyfile</i>.  The default <i>keyfile</i> value is <b>rsa</b>.
 
-              Zero or more <i>hostname</i> values  can  be  specified.   The  default
+              Zero  or  more  <i>hostname</i>  values  can be specified.  The default
               <i>hostname</i> is the value of <b><a href="postconf.5.html#myhostname">myhostname</a></b> <a href="postconf.5.html">main.cf</a> parameter.
 
        <b>output-server-tlsa</b> [<b>-h</b> <i>hostname</i>] [<i>keyfile</i><b>...</b>]
-              Write  to  stdout  a DANE TLSA RRset suitable for a port 25 SMTP
+              Write to stdout a DANE TLSA RRset suitable for a  port  25  SMTP
               server on host <i>hostname</i> with keys from any of the specified <i>key-</i>
-              <i>file</i>  values.   The default <i>hostname</i> is the value of the <b>myhost-</b>
+              <i>file</i> values.  The default <i>hostname</i> is the value of  the  <b>myhost-</b>
               <b>name</b> <a href="postconf.5.html">main.cf</a> parameter.
 
-              Instead of filenames, the <i>keyfile</i> list may specify names of sup-
-              ported  public key algorithms (see "<b>postconf -T public-key-algo-</b>
-              <b>rithms</b>").  In that case, the actual <i>keyfile</i> list uses the values
-              of the corresponding Postfix server TLS key file parameters.  If
-              a parameter value is empty or equal to <b>none</b>, then no TLSA record
+              Instead  of  absolute  pathnames  or pathnames relative to $<a href="postconf.5.html#config_directory">con</a>-
+              <a href="postconf.5.html#config_directory">fig_directory</a>, the <i>keyfile</i> list may specify names  of  supported
+              public key algorithms (see "<b>postconf -T public-key-algorithms</b>").
+              In that case, the actual <i>keyfile</i> list uses  the  values  of  the
+              corresponding  Postfix  server  TLS  key  file parameters.  If a
+              parameter value is empty or equal to <b>none</b>, then no  TLSA  record
               is output for that algorithm.
 
               The  default  <i>keyfile</i>  list  consists of the two supported algo-
index 406be571b7c08c0d809db282f5e9b1b47e3d959c..3569f503e87bd79cf35e1c5266d8fc64f9b7fb53 100644 (file)
@@ -120,12 +120,13 @@ display the full command needed to deploy the generated key
 and certificate).  After the new certificate and key are
 deployed any obsolete keys and certificates may be removed
 by hand.   The \fIkeyfile\fR and \fIcertfile\fR filenames
-are relative to the Postfix configuration directory.
+may be relative to the Postfix configuration directory.
 .IP "\fBoutput\-server\-csr\fR [\fB\-k \fIkeyfile\fR] [\fIhostname\fB...\fR]"
 Write to stdout a certificate signing request (CSR) for the
 specified \fIkeyfile\fR.
 .sp
-Instead of a filename, \fIkeyfile\fR may specify one of the
+Instead of an absolute pathname or a pathname relative to
+$config_directory, \fIkeyfile\fR may specify one of the
 supported key algorithm names (see "\fBpostconf \-T
 public\-key\-algorithms\fR"). In that case, the corresponding
 setting from main.cf is used to locate the \fIkeyfile\fR.
@@ -140,7 +141,8 @@ SMTP server on host \fIhostname\fR with keys from any of
 the specified \fIkeyfile\fR values.  The default \fIhostname\fR
 is the value of the \fBmyhostname\fR main.cf parameter.
 .sp
-Instead of filenames, the \fIkeyfile\fR list may specify
+Instead of absolute pathnames or pathnames relative to
+$config_directory, the \fIkeyfile\fR list may specify
 names of supported public key algorithms (see "\fBpostconf
 \-T public\-key\-algorithms\fR").  In that case, the actual
 \fIkeyfile\fR list uses the values of the corresponding
index 8e87a5e50eb7fde92d2bd3a8f40cc3f19878ba08..2046a71c8584de44e0108a0ede38e50d3961918b 100644 (file)
@@ -1,10 +1,10 @@
 SHELL  = /bin/sh
 SRCS   = dns_lookup.c dns_rr.c dns_strerror.c dns_strtype.c dns_rr_to_pa.c \
        dns_sa_to_rr.c dns_rr_eq_sa.c dns_rr_to_sa.c dns_strrecord.c \
-       dns_rr_filter.c
+       dns_rr_filter.c dns_str_resflags.c
 OBJS   = dns_lookup.o dns_rr.o dns_strerror.o dns_strtype.o dns_rr_to_pa.o \
        dns_sa_to_rr.o dns_rr_eq_sa.o dns_rr_to_sa.o dns_strrecord.o \
-       dns_rr_filter.o
+       dns_rr_filter.o dns_str_resflags.o
 HDRS   = dns.h
 TESTSRC        = test_dns_lookup.c test_alias_token.c
 DEFS   = -I. -I$(INC_DIR) -D$(SYSTYPE)
@@ -275,6 +275,8 @@ depend: $(MAKES)
        @$(EXPORT) make -f Makefile.in Makefile 1>&2
 
 # do not edit below this line - it is generated by 'make depend'
+dns_lookup.o: dns.h
+dns_lookup.o: dns_lookup.c
 dns_lookup.o: ../../include/argv.h
 dns_lookup.o: ../../include/check_arg.h
 dns_lookup.o: ../../include/dict.h
@@ -291,19 +293,8 @@ dns_lookup.o: ../../include/valid_hostname.h
 dns_lookup.o: ../../include/vbuf.h
 dns_lookup.o: ../../include/vstream.h
 dns_lookup.o: ../../include/vstring.h
-dns_lookup.o: dns.h
-dns_lookup.o: dns_lookup.c
-dns_rr.o: ../../include/check_arg.h
-dns_rr.o: ../../include/msg.h
-dns_rr.o: ../../include/myaddrinfo.h
-dns_rr.o: ../../include/mymalloc.h
-dns_rr.o: ../../include/myrand.h
-dns_rr.o: ../../include/sock_addr.h
-dns_rr.o: ../../include/sys_defs.h
-dns_rr.o: ../../include/vbuf.h
-dns_rr.o: ../../include/vstring.h
-dns_rr.o: dns.h
-dns_rr.o: dns_rr.c
+dns_rr_eq_sa.o: dns.h
+dns_rr_eq_sa.o: dns_rr_eq_sa.c
 dns_rr_eq_sa.o: ../../include/check_arg.h
 dns_rr_eq_sa.o: ../../include/msg.h
 dns_rr_eq_sa.o: ../../include/myaddrinfo.h
@@ -311,8 +302,8 @@ dns_rr_eq_sa.o: ../../include/sock_addr.h
 dns_rr_eq_sa.o: ../../include/sys_defs.h
 dns_rr_eq_sa.o: ../../include/vbuf.h
 dns_rr_eq_sa.o: ../../include/vstring.h
-dns_rr_eq_sa.o: dns.h
-dns_rr_eq_sa.o: dns_rr_eq_sa.c
+dns_rr_filter.o: dns.h
+dns_rr_filter.o: dns_rr_filter.c
 dns_rr_filter.o: ../../include/argv.h
 dns_rr_filter.o: ../../include/check_arg.h
 dns_rr_filter.o: ../../include/dict.h
@@ -325,8 +316,19 @@ dns_rr_filter.o: ../../include/sys_defs.h
 dns_rr_filter.o: ../../include/vbuf.h
 dns_rr_filter.o: ../../include/vstream.h
 dns_rr_filter.o: ../../include/vstring.h
-dns_rr_filter.o: dns.h
-dns_rr_filter.o: dns_rr_filter.c
+dns_rr.o: dns.h
+dns_rr.o: dns_rr.c
+dns_rr.o: ../../include/check_arg.h
+dns_rr.o: ../../include/msg.h
+dns_rr.o: ../../include/myaddrinfo.h
+dns_rr.o: ../../include/mymalloc.h
+dns_rr.o: ../../include/myrand.h
+dns_rr.o: ../../include/sock_addr.h
+dns_rr.o: ../../include/sys_defs.h
+dns_rr.o: ../../include/vbuf.h
+dns_rr.o: ../../include/vstring.h
+dns_rr_to_pa.o: dns.h
+dns_rr_to_pa.o: dns_rr_to_pa.c
 dns_rr_to_pa.o: ../../include/check_arg.h
 dns_rr_to_pa.o: ../../include/msg.h
 dns_rr_to_pa.o: ../../include/myaddrinfo.h
@@ -334,8 +336,8 @@ dns_rr_to_pa.o: ../../include/sock_addr.h
 dns_rr_to_pa.o: ../../include/sys_defs.h
 dns_rr_to_pa.o: ../../include/vbuf.h
 dns_rr_to_pa.o: ../../include/vstring.h
-dns_rr_to_pa.o: dns.h
-dns_rr_to_pa.o: dns_rr_to_pa.c
+dns_rr_to_sa.o: dns.h
+dns_rr_to_sa.o: dns_rr_to_sa.c
 dns_rr_to_sa.o: ../../include/check_arg.h
 dns_rr_to_sa.o: ../../include/msg.h
 dns_rr_to_sa.o: ../../include/myaddrinfo.h
@@ -343,8 +345,8 @@ dns_rr_to_sa.o: ../../include/sock_addr.h
 dns_rr_to_sa.o: ../../include/sys_defs.h
 dns_rr_to_sa.o: ../../include/vbuf.h
 dns_rr_to_sa.o: ../../include/vstring.h
-dns_rr_to_sa.o: dns.h
-dns_rr_to_sa.o: dns_rr_to_sa.c
+dns_sa_to_rr.o: dns.h
+dns_sa_to_rr.o: dns_sa_to_rr.c
 dns_sa_to_rr.o: ../../include/check_arg.h
 dns_sa_to_rr.o: ../../include/msg.h
 dns_sa_to_rr.o: ../../include/myaddrinfo.h
@@ -352,16 +354,16 @@ dns_sa_to_rr.o: ../../include/sock_addr.h
 dns_sa_to_rr.o: ../../include/sys_defs.h
 dns_sa_to_rr.o: ../../include/vbuf.h
 dns_sa_to_rr.o: ../../include/vstring.h
-dns_sa_to_rr.o: dns.h
-dns_sa_to_rr.o: dns_sa_to_rr.c
+dns_strerror.o: dns.h
+dns_strerror.o: dns_strerror.c
 dns_strerror.o: ../../include/check_arg.h
 dns_strerror.o: ../../include/myaddrinfo.h
 dns_strerror.o: ../../include/sock_addr.h
 dns_strerror.o: ../../include/sys_defs.h
 dns_strerror.o: ../../include/vbuf.h
 dns_strerror.o: ../../include/vstring.h
-dns_strerror.o: dns.h
-dns_strerror.o: dns_strerror.c
+dns_strrecord.o: dns.h
+dns_strrecord.o: dns_strrecord.c
 dns_strrecord.o: ../../include/check_arg.h
 dns_strrecord.o: ../../include/msg.h
 dns_strrecord.o: ../../include/myaddrinfo.h
@@ -369,16 +371,24 @@ dns_strrecord.o: ../../include/sock_addr.h
 dns_strrecord.o: ../../include/sys_defs.h
 dns_strrecord.o: ../../include/vbuf.h
 dns_strrecord.o: ../../include/vstring.h
-dns_strrecord.o: dns.h
-dns_strrecord.o: dns_strrecord.c
+dns_str_resflags.o: dns.h
+dns_str_resflags.o: dns_str_resflags.c
+dns_str_resflags.o: ../../include/check_arg.h
+dns_str_resflags.o: ../../include/myaddrinfo.h
+dns_str_resflags.o: ../../include/name_mask.h
+dns_str_resflags.o: ../../include/sock_addr.h
+dns_str_resflags.o: ../../include/sys_defs.h
+dns_str_resflags.o: ../../include/vbuf.h
+dns_str_resflags.o: ../../include/vstring.h
+dns_strtype.o: dns.h
+dns_strtype.o: dns_strtype.c
 dns_strtype.o: ../../include/check_arg.h
 dns_strtype.o: ../../include/myaddrinfo.h
 dns_strtype.o: ../../include/sock_addr.h
 dns_strtype.o: ../../include/sys_defs.h
 dns_strtype.o: ../../include/vbuf.h
 dns_strtype.o: ../../include/vstring.h
-dns_strtype.o: dns.h
-dns_strtype.o: dns_strtype.c
+test_dns_lookup.o: dns.h
 test_dns_lookup.o: ../../include/argv.h
 test_dns_lookup.o: ../../include/check_arg.h
 test_dns_lookup.o: ../../include/mail_params.h
@@ -391,5 +401,4 @@ test_dns_lookup.o: ../../include/sys_defs.h
 test_dns_lookup.o: ../../include/vbuf.h
 test_dns_lookup.o: ../../include/vstream.h
 test_dns_lookup.o: ../../include/vstring.h
-test_dns_lookup.o: dns.h
 test_dns_lookup.o: test_dns_lookup.c
index c3fb5a43a940b141fceeb6f4ea3e4acf067df3fa..8ea5b91780d0a56d3d3721d9942ff4d4f73a9ff4 100644 (file)
@@ -300,6 +300,11 @@ extern int dns_rr_filter_execute(DNS_RR **);
 
 #endif
 
+ /*
+  * dns_str_resflags.c
+  */
+const char *dns_str_resflags(unsigned long);
+
 /* LICENSE
 /* .ad
 /* .fi
index fe59aa64745215e853360f0755602e8c2c3225b8..f41a2a6c276deee2613adb33b09f3e835f2dc399 100644 (file)
@@ -1084,8 +1084,8 @@ int     dns_lookup_rl(const char *name, unsigned flags, DNS_RR **rrlist,
     for (type = va_arg(ap, unsigned); type != 0; type = next) {
        next = va_arg(ap, unsigned);
        if (msg_verbose)
-           msg_info("lookup %s type %s flags %d",
-                    name, dns_strtype(type), flags);
+           msg_info("lookup %s type %s flags %s",
+                    name, dns_strtype(type), dns_str_resflags(flags));
        status = dns_lookup_x(name, type, flags, rrlist ? &rr : (DNS_RR **) 0,
                              fqdn, why, rcode, lflags);
        if (rrlist && rr)
@@ -1136,8 +1136,8 @@ int     dns_lookup_rv(const char *name, unsigned flags, DNS_RR **rrlist,
     for (type = *types++; type != 0; type = next) {
        next = *types++;
        if (msg_verbose)
-           msg_info("lookup %s type %s flags %d",
-                    name, dns_strtype(type), flags);
+           msg_info("lookup %s type %s flags %s",
+                    name, dns_strtype(type), dns_str_resflags(flags));
        status = dns_lookup_x(name, type, flags, rrlist ? &rr : (DNS_RR **) 0,
                              fqdn, why, rcode, lflags);
        if (rrlist && rr)
diff --git a/postfix/src/dns/dns_str_resflags.c b/postfix/src/dns/dns_str_resflags.c
new file mode 100644 (file)
index 0000000..4885dfe
--- /dev/null
@@ -0,0 +1,114 @@
+/*++
+/* NAME
+/*     dns_str_resflags 3
+/* SUMMARY
+/*     convert resolver flags to printable form
+/* SYNOPSIS
+/*     #include <dns.h>
+/*
+/*     const char *dns_str_resflags(mask)
+/*     unsigned long mask;
+/* DESCRIPTION
+/*     dns_str_resflags() converts RES_* resolver(5) flags from internal
+/*     form to printable string. Individual flag names are separated
+/*     with '|'.  The result is overwritten with each call.
+/* LICENSE
+/* .ad
+/* .fi
+/*     The Secure Mailer license must be distributed with this software.
+/* AUTHOR(S)
+/*     Wietse Venema
+/*     Google, Inc.
+/*     111 8th Avenue
+/*     New York, NY 10011, USA
+/*--*/
+
+ /*
+  * System library.
+  */
+#include <sys_defs.h>
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+
+ /*
+  * Utility library.
+  */
+#include <name_mask.h>
+
+ /*
+  * DNS library.
+  */
+#include <dns.h>
+
+ /*
+  * Application-specific.
+  */
+
+ /*
+  * This list overlaps with dns_res_opt_masks[] in smtp.c, but there we
+  * permit only a small subset of all possible flags.
+  */
+static const LONG_NAME_MASK resflag_table[] = {
+    "RES_INIT", RES_INIT,
+    "RES_DEBUG", RES_DEBUG,
+    "RES_AAONLY", RES_AAONLY,
+    "RES_USEVC", RES_USEVC,
+    "RES_PRIMARY", RES_PRIMARY,
+    "RES_IGNTC", RES_IGNTC,
+    "RES_RECURSE", RES_RECURSE,
+    "RES_DEFNAMES", RES_DEFNAMES,
+    "RES_STAYOPEN", RES_STAYOPEN,
+    "RES_DNSRCH", RES_DNSRCH,
+    "RES_INSECURE1", RES_INSECURE1,
+    "RES_INSECURE2", RES_INSECURE2,
+    "RES_NOALIASES", RES_NOALIASES,
+    "RES_USE_INET6", RES_USE_INET6,
+    "RES_ROTATE", RES_ROTATE,
+    "RES_NOCHECKNAME", RES_NOCHECKNAME,
+    "RES_USE_EDNS0", RES_USE_EDNS0,
+    "RES_USE_DNSSEC", RES_USE_DNSSEC,
+#ifdef RES_KEEPTSIG
+    "RES_KEEPTSIG", RES_KEEPTSIG,
+#endif
+#ifdef RES_BLAST
+    "RES_BLAST", RES_BLAST,
+#endif
+#ifdef RES_USEBSTRING
+    "RES_USEBSTRING", RES_USEBSTRING,
+#endif
+#ifdef RES_NSID
+    "RES_NSID", RES_NSID,
+#endif
+#ifdef RES_NOIP6DOTINT
+    "RES_NOIP6DOTINT", RES_NOIP6DOTINT,
+#endif
+#ifdef RES_USE_DNAME
+    "RES_USE_DNAME", RES_USE_DNAME,
+#endif
+#ifdef RES_NO_NIBBLE2
+    "RES_NO_NIBBLE2", RES_NO_NIBBLE2,
+#endif
+#ifdef RES_SNGLKUP
+    "RES_SNGLKUP", RES_SNGLKUP,
+#endif
+#ifdef RES_SNGLKUPREOP
+    "RES_SNGLKUPREOP", RES_SNGLKUPREOP,
+#endif
+#ifdef RES_NOTLDQUERY
+    "RES_NOTLDQUERY", RES_NOTLDQUERY,
+#endif
+    0,
+};
+
+/* dns_str_resflags - convert RES_* resolver flags to printable form */
+
+const char *dns_str_resflags(unsigned long mask)
+{
+    static VSTRING *buf;
+
+    if (buf == 0)
+       buf = vstring_alloc(20);
+    return (str_long_name_mask_opt(buf, "dsns_str_resflags", resflag_table,
+                                  mask, NAME_MASK_NUMBER | NAME_MASK_PIPE));
+}
index 134309fd6fd192b64601f0f67104f42188ca8a68..cbfc0593134144d1f306d7d8bad83a516bf7fa9f 100644 (file)
@@ -1,13 +1,13 @@
-./test_dns_lookup: lookup 1.0.0.127.zen.spamhaus.org type A flags 2097152
+./test_dns_lookup: lookup 1.0.0.127.zen.spamhaus.org type A flags RES_USE_DNSSEC
 ./test_dns_lookup: dns_query: 1.0.0.127.zen.spamhaus.org (A): Host not found
 ./test_dns_lookup: dns_get_answer: type SOA for zen.spamhaus.org
 ./test_dns_lookup: warning: Host or domain name not found. Name service error for name=1.0.0.127.zen.spamhaus.org type=A: Host not found (rcode=3)
 1.0.0.127.zen.spamhaus.org: fqdn: zen.spamhaus.org
 ad: 0, rr: zen.spamhaus.org. TTL IN SOA - - D D D D D
-./test_dns_lookup: lookup 1.0.0.127.b.barracudacentral.org type A flags 2097152
+./test_dns_lookup: lookup 1.0.0.127.b.barracudacentral.org type A flags RES_USE_DNSSEC
 ./test_dns_lookup: dns_query: 1.0.0.127.b.barracudacentral.org (A): Host not found
 ./test_dns_lookup: warning: Host or domain name not found. Name service error for name=1.0.0.127.b.barracudacentral.org type=A: Host not found (rcode=3)
-./test_dns_lookup: lookup 1.0.0.127.bl.spamcop.net type A flags 2097152
+./test_dns_lookup: lookup 1.0.0.127.bl.spamcop.net type A flags RES_USE_DNSSEC
 ./test_dns_lookup: dns_query: 1.0.0.127.bl.spamcop.net (A): Host not found
 ./test_dns_lookup: dns_get_answer: type SOA for bl.spamcop.net
 ./test_dns_lookup: warning: Host or domain name not found. Name service error for name=1.0.0.127.bl.spamcop.net type=A: Host not found (rcode=3)
index e5741d34cd9ea5a27f73a61471778b7587807659..eee08eb16fc3ed634d1192b96b51d1736e66bc07 100644 (file)
@@ -1,9 +1,9 @@
-./test_dns_lookup: lookup 1.0.0.127.zen.spamhaus.org type A flags 2097152
+./test_dns_lookup: lookup 1.0.0.127.zen.spamhaus.org type A flags RES_USE_DNSSEC
 ./test_dns_lookup: dns_query: 1.0.0.127.zen.spamhaus.org (A): Host not found
 ./test_dns_lookup: warning: Host or domain name not found. Name service error for name=1.0.0.127.zen.spamhaus.org type=A: Host not found (rcode=3)
-./test_dns_lookup: lookup 1.0.0.127.b.barracudacentral.org type A flags 2097152
+./test_dns_lookup: lookup 1.0.0.127.b.barracudacentral.org type A flags RES_USE_DNSSEC
 ./test_dns_lookup: dns_query: 1.0.0.127.b.barracudacentral.org (A): Host not found
 ./test_dns_lookup: warning: Host or domain name not found. Name service error for name=1.0.0.127.b.barracudacentral.org type=A: Host not found (rcode=3)
-./test_dns_lookup: lookup 1.0.0.127.bl.spamcop.net type A flags 2097152
+./test_dns_lookup: lookup 1.0.0.127.bl.spamcop.net type A flags RES_USE_DNSSEC
 ./test_dns_lookup: dns_query: 1.0.0.127.bl.spamcop.net (A): Host not found
 ./test_dns_lookup: warning: Host or domain name not found. Name service error for name=1.0.0.127.bl.spamcop.net type=A: Host not found (rcode=3)
index 06bc7d8481d28b3c16488078aea41a22f2241ae5..f1eb56b2d309c3bb2e4ec691271aafeb67e0a78d 100644 (file)
@@ -1,14 +1,14 @@
-./test_dns_lookup: lookup 2.0.0.127.zen.spamhaus.org type A flags 2097152
+./test_dns_lookup: lookup 2.0.0.127.zen.spamhaus.org type A flags RES_USE_DNSSEC
 ./test_dns_lookup: dns_query: 2.0.0.127.zen.spamhaus.org (A): OK
 ./test_dns_lookup: dns_get_answer: type A for 2.0.0.127.zen.spamhaus.org
 2.0.0.127.zen.spamhaus.org: fqdn: 2.0.0.127.zen.spamhaus.org
 ad: 0, rr: 2.0.0.127.zen.spamhaus.org. TTL IN A 127.0.0.D
-./test_dns_lookup: lookup 2.0.0.127.b.barracudacentral.org type A flags 2097152
+./test_dns_lookup: lookup 2.0.0.127.b.barracudacentral.org type A flags RES_USE_DNSSEC
 ./test_dns_lookup: dns_query: 2.0.0.127.b.barracudacentral.org (A): OK
 ./test_dns_lookup: dns_get_answer: type A for 2.0.0.127.b.barracudacentral.org
 2.0.0.127.b.barracudacentral.org: fqdn: 2.0.0.127.b.barracudacentral.org
 ad: 0, rr: 2.0.0.127.b.barracudacentral.org. TTL IN A 127.0.0.D
-./test_dns_lookup: lookup 2.0.0.127.bl.spamcop.net type A flags 2097152
+./test_dns_lookup: lookup 2.0.0.127.bl.spamcop.net type A flags RES_USE_DNSSEC
 ./test_dns_lookup: dns_query: 2.0.0.127.bl.spamcop.net (A): OK
 ./test_dns_lookup: dns_get_answer: type A for 2.0.0.127.bl.spamcop.net
 2.0.0.127.bl.spamcop.net: fqdn: 2.0.0.127.bl.spamcop.net
index 4b19ee49910c658b50ef445b36c8e02a0ad27435..806cfe042c94ca9df014f416f044edaba6a9cf0c 100644 (file)
@@ -1,10 +1,10 @@
-./test_dns_lookup: lookup spike.porcupine.org type A flags 2097152
+./test_dns_lookup: lookup spike.porcupine.org type A flags RES_USE_DNSSEC
 ./test_dns_lookup: dns_query: spike.porcupine.org (A): OK
 ./test_dns_lookup: dns_get_answer: type A for spike.porcupine.org
 ./test_dns_lookup: dict_regexp_lookup: error.reg: spike.porcupine.org. 3600 IN A 168.100.189.2
 ./test_dns_lookup: maps_find: DNS reply filter: regexp:error.reg(0,lock|fold_fix): spike.porcupine.org. 3600 IN A 168.100.189.2 = oops
 ./test_dns_lookup: warning: DNS reply filter: unknown DNS filter action: "oops"
-./test_dns_lookup: lookup spike.porcupine.org type AAAA flags 2097152
+./test_dns_lookup: lookup spike.porcupine.org type AAAA flags RES_USE_DNSSEC
 ./test_dns_lookup: dns_query: spike.porcupine.org (AAAA): OK
 ./test_dns_lookup: dns_get_answer: type AAAA for spike.porcupine.org
 ./test_dns_lookup: dict_regexp_lookup: error.reg: spike.porcupine.org. 3600 IN AAAA 2604:8d00:189::2
index ec8eda54cfacddee4242d2a55f7b0061e57112cb..9437eb96f25326a63fb9f848b5e5d3137a9c8daa 100644 (file)
@@ -1,9 +1,9 @@
-./test_dns_lookup: lookup porcupine.org type MX flags 2097152
+./test_dns_lookup: lookup porcupine.org type MX flags RES_USE_DNSSEC
 ./test_dns_lookup: dns_query: porcupine.org (MX): OK
 ./test_dns_lookup: dns_get_answer: type MX for porcupine.org
 ./test_dns_lookup: dns_get_answer: type MX for porcupine.org
 ./test_dns_lookup: dns_get_answer: type MX for porcupine.org
-./test_dns_lookup: lookup porcupine.org type A flags 2097152
+./test_dns_lookup: lookup porcupine.org type A flags RES_USE_DNSSEC
 ./test_dns_lookup: dns_query: porcupine.org (A): Host found but no data record of requested type
 ad: 0, rr: porcupine.org. 3600 IN MX 10 spike.porcupine.org.
 ad: 0, rr: porcupine.org. 3600 IN MX 20 fist.porcupine.org.
index 72b64446e127654d803f47caecdcebfd9f34715c..88ba511c483f87f0ce432d8d66c780e6742b1974 100644 (file)
@@ -1,10 +1,10 @@
-./test_dns_lookup: lookup spike.porcupine.org type A flags 2097152
+./test_dns_lookup: lookup spike.porcupine.org type A flags RES_USE_DNSSEC
 ./test_dns_lookup: dns_query: spike.porcupine.org (A): OK
 ./test_dns_lookup: dns_get_answer: type A for spike.porcupine.org
 ./test_dns_lookup: dict_regexp_lookup: no-a.reg: spike.porcupine.org. 3600 IN A 168.100.189.2
 ./test_dns_lookup: maps_find: DNS reply filter: regexp:no-a.reg(0,lock|fold_fix): spike.porcupine.org. 3600 IN A 168.100.189.2 = ignore
 ./test_dns_lookup: ignoring DNS RR: spike.porcupine.org. 3600 IN A 168.100.189.2
-./test_dns_lookup: lookup spike.porcupine.org type AAAA flags 2097152
+./test_dns_lookup: lookup spike.porcupine.org type AAAA flags RES_USE_DNSSEC
 ./test_dns_lookup: dns_query: spike.porcupine.org (AAAA): OK
 ./test_dns_lookup: dns_get_answer: type AAAA for spike.porcupine.org
 ./test_dns_lookup: dict_regexp_lookup: no-a.reg: spike.porcupine.org. 3600 IN AAAA 2604:8d00:189::2
index eabe0525a3018d371dd5311a0d19568bd7325557..f2a678c33033a4d4b17fdf7927014cecf8f0b6a5 100644 (file)
@@ -1,9 +1,9 @@
-./test_dns_lookup: lookup spike.porcupine.org type A flags 2097152
+./test_dns_lookup: lookup spike.porcupine.org type A flags RES_USE_DNSSEC
 ./test_dns_lookup: dns_query: spike.porcupine.org (A): OK
 ./test_dns_lookup: dns_get_answer: type A for spike.porcupine.org
 ./test_dns_lookup: dict_regexp_lookup: no-aaaa.reg: spike.porcupine.org. 3600 IN A 168.100.189.2
 ./test_dns_lookup: maps_find: DNS reply filter: spike.porcupine.org. 3600 IN A 168.100.189.2: not found
-./test_dns_lookup: lookup spike.porcupine.org type AAAA flags 2097152
+./test_dns_lookup: lookup spike.porcupine.org type AAAA flags RES_USE_DNSSEC
 ./test_dns_lookup: dns_query: spike.porcupine.org (AAAA): OK
 ./test_dns_lookup: dns_get_answer: type AAAA for spike.porcupine.org
 ./test_dns_lookup: dict_regexp_lookup: no-aaaa.reg: spike.porcupine.org. 3600 IN AAAA 2604:8d00:189::2
index 314541b6a03b224f8cabbf3304270cce7d0f245b..37357941e5554659adcbcfb7f43fd17eae7a2992 100644 (file)
@@ -8,7 +8,7 @@
 ./test_dns_lookup: ignoring DNS RR: porcupine.org. 3600 IN MX 10 spike.porcupine.org.
 ./test_dns_lookup: ignoring DNS RR: porcupine.org. 3600 IN MX 20 fist.porcupine.org.
 ./test_dns_lookup: ignoring DNS RR: porcupine.org. 3600 IN MX 30 m1.porcupine.org.
-./test_dns_lookup: lookup porcupine.org type MX flags 2097152
+./test_dns_lookup: lookup porcupine.org type MX flags RES_USE_DNSSEC
 ./test_dns_lookup: maps_find: DNS reply filter: regexp:no-mx.reg(0,lock|fold_fix): porcupine.org. 3600 IN MX 10 spike.porcupine.org. = ignore
 ./test_dns_lookup: maps_find: DNS reply filter: regexp:no-mx.reg(0,lock|fold_fix): porcupine.org. 3600 IN MX 20 fist.porcupine.org. = ignore
 ./test_dns_lookup: maps_find: DNS reply filter: regexp:no-mx.reg(0,lock|fold_fix): porcupine.org. 3600 IN MX 30 m1.porcupine.org. = ignore
index 176023889d469dd16e5c366411fc9e2804d9db05..2386b53611ab0e584a4ce86c0cd211e782988d35 100644 (file)
@@ -1,7 +1,7 @@
-./test_dns_lookup: lookup nullmx.porcupine.org type MX flags 2097152
+./test_dns_lookup: lookup nullmx.porcupine.org type MX flags RES_USE_DNSSEC
 ./test_dns_lookup: dns_query: nullmx.porcupine.org (MX): OK
 ./test_dns_lookup: dns_get_answer: type MX for nullmx.porcupine.org
-./test_dns_lookup: lookup nullmx.porcupine.org type A flags 2097152
+./test_dns_lookup: lookup nullmx.porcupine.org type A flags RES_USE_DNSSEC
 ./test_dns_lookup: dns_query: nullmx.porcupine.org (A): OK
 ./test_dns_lookup: dns_get_answer: type A for nullmx.porcupine.org
 nullmx.porcupine.org: fqdn: nullmx.porcupine.org
index aecbeb454ae40b2de5c81ede314b8eed53822471..15be203b13e89d182d94382c8c703e2c4f26d32f 100644 (file)
@@ -1,5 +1,5 @@
-./test_dns_lookup: lookup nxdomain.porcupine.org type MX flags 2097152
+./test_dns_lookup: lookup nxdomain.porcupine.org type MX flags RES_USE_DNSSEC
 ./test_dns_lookup: dns_query: nxdomain.porcupine.org (MX): Host not found
-./test_dns_lookup: lookup nxdomain.porcupine.org type A flags 2097152
+./test_dns_lookup: lookup nxdomain.porcupine.org type A flags RES_USE_DNSSEC
 ./test_dns_lookup: dns_query: nxdomain.porcupine.org (A): Host not found
 ./test_dns_lookup: warning: Host or domain name not found. Name service error for name=nxdomain.porcupine.org type=A: Host not found (rcode=3)
index fbdcfed9d8563cfb65b15e654922d56f6736aa8d..de345396087b83d23ccdacca8e6b368c8b415977 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      "20160221"
+#define MAIL_RELEASE_DATE      "20160224"
 #define MAIL_VERSION_NUMBER    "3.2"
 
 #ifdef SNAPSHOT