]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2035. [func] Make falling back to TCP on UDP refresh failure
authorMark Andrews <marka@isc.org>
Sun, 4 Jun 2006 23:33:27 +0000 (23:33 +0000)
committerMark Andrews <marka@isc.org>
Sun, 4 Jun 2006 23:33:27 +0000 (23:33 +0000)
                        optional. Default "try-tcp-refresh yes;" for BIND 8
                        compatibility. [RT #16123]

CHANGES
bin/named/config.c
bin/named/named.conf.docbook
bin/named/zoneconf.c
doc/arm/Bv9ARM-book.xml
lib/bind9/check.c
lib/dns/include/dns/zone.h
lib/dns/zone.c
lib/isccfg/namedconf.c

diff --git a/CHANGES b/CHANGES
index 3713bd52f444583c5fbb0de0be54aa75afa807e5..87039c60b1780d0cdd17292ea3f18d82644ce784 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,7 @@
+2035.  [func]          Make falling back to TCP on UDP refresh failure
+                       optional. Default "try-tcp-refresh yes;" for BIND 8
+                       compatibility. [RT #16123]
+
        --- 9.3.2-WFB-2 released ---
 
 2025.  [func]          Update "zone serial unchanged" message. [RT #16026]
index 99e5ffa7f418d5d04fd714fd856f0f42aa3ccd0c..ee0f0bb1874b72b4b1871a921db6aff2a9e432c2 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: config.c,v 1.11.2.4.8.29 2004/10/05 02:52:26 marka Exp $ */
+/* $Id: config.c,v 1.11.2.4.8.29.10.1 2006/06/04 23:33:27 marka Exp $ */
 
 #include <config.h>
 
@@ -155,6 +155,7 @@ options {\n\
        zone-statistics false;\n\
        max-journal-size unlimited;\n\
        ixfr-from-differences false;\n\
+       try-tcp-refresh yes; /* BIND 8 compat */\n\
 };\n\
 "
 
index 4ba10844cc32afd79ad331fee8163b1bdaa85a2d..6fe99e6ca82e2ef7d9d9d219c4c3bc51de9284af 100644 (file)
@@ -17,7 +17,7 @@
  - PERFORMANCE OF THIS SOFTWARE.
 -->
 
-<!-- $Id: named.conf.docbook,v 1.1.4.4 2005/05/13 01:22:33 marka Exp $ -->
+<!-- $Id: named.conf.docbook,v 1.1.4.4.4.1 2006/06/04 23:33:27 marka Exp $ -->
 
 <refentry>
   <refentryinfo>
@@ -299,6 +299,7 @@ options {
        use-alt-transfer-source <replaceable>boolean</replaceable>;
 
        zone-statistics <replaceable>boolean</replaceable>;
+       try-tcp-refresh <replaceable>boolean</replaceable>;
        key-directory <replaceable>quoted_string</replaceable>;
 
        allow-v6-synthesis { <replaceable>address_match_element</replaceable>; ... }; // obsolete
@@ -426,6 +427,7 @@ view <replaceable>string</replaceable> <replaceable>optional_class</replaceable>
        use-alt-transfer-source <replaceable>boolean</replaceable>;
 
        zone-statistics <replaceable>boolean</replaceable>;
+       try-tcp-refresh <replaceable>boolean</replaceable>;
        key-directory <replaceable>quoted_string</replaceable>;
 
        allow-v6-synthesis { <replaceable>address_match_element</replaceable>; ... }; // obsolete
@@ -502,6 +504,7 @@ zone <replaceable>string</replaceable> <replaceable>optional_class</replaceable>
        use-alt-transfer-source <replaceable>boolean</replaceable>;
 
        zone-statistics <replaceable>boolean</replaceable>;
+       try-tcp-refresh <replaceable>boolean</replaceable>;
        key-directory <replaceable>quoted_string</replaceable>;
 
        ixfr-base <replaceable>quoted_string</replaceable>; // obsolete
index 41ce69d6a627a57d321e141846f7dc2425215277..007711ee39f2a02ff0f2ed2269fa39d0dd380f96 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: zoneconf.c,v 1.87.2.4.10.15 2005/09/06 02:12:39 marka Exp $ */
+/* $Id: zoneconf.c,v 1.87.2.4.10.15.4.1 2006/06/04 23:33:27 marka Exp $ */
 
 #include <config.h>
 
@@ -705,6 +705,10 @@ ns_zone_configure(cfg_obj_t *config, cfg_obj_t *vconfig, cfg_obj_t *zconfig,
                        alt = cfg_obj_asboolean(obj);
                dns_zone_setoption(zone, DNS_ZONEOPT_USEALTXFRSRC, alt);
 
+               obj = NULL;
+               (void)ns_config_get(maps, "try-tcp-refresh", &obj);
+               dns_zone_setoption(zone, DNS_ZONEOPT_TRYTCPREFRESH,
+                                  cfg_obj_asboolean(obj));
                break;
 
        default:
index 28ccb360afe03d3a5a9cf53c86fbccb14b14af42..69e6b07a3876a41ca160cc5743edce38fb24289d 100644 (file)
@@ -18,7 +18,7 @@
  - PERFORMANCE OF THIS SOFTWARE.
 -->
 
-<!-- File: $Id: Bv9ARM-book.xml,v 1.155.2.27.2.59 2005/10/10 00:22:24 marka Exp $ -->
+<!-- File: $Id: Bv9ARM-book.xml,v 1.155.2.27.2.59.4.1 2006/06/04 23:33:26 marka Exp $ -->
 
 <book>
 <title>BIND 9 Administrator Reference Manual</title>
@@ -2770,6 +2770,7 @@ statement in the <filename>named.conf</filename> file:</para>
     <optional> allow-transfer { <replaceable>address_match_list</replaceable> }; </optional>
     <optional> allow-recursion { <replaceable>address_match_list</replaceable> }; </optional>
     <optional> allow-update-forwarding { <replaceable>address_match_list</replaceable> }; </optional>
+    <optional> try-tcp-refresh <replaceable>yes_or_no</replaceable>; </optional>
     <optional> allow-v6-synthesis { <replaceable>address_match_list</replaceable> }; </optional>
     <optional> blackhole { <replaceable>address_match_list</replaceable> }; </optional>
     <optional> avoid-v4-udp-ports { <replaceable>port_list</replaceable> }; </optional>
@@ -3404,6 +3405,16 @@ IN-ADDR.ARPA, IP6.ARPA, IP6.INT).
 </para>
 </listitem></varlistentry>
 
+           <varlistentry>
+             <term><command>try-tcp-refresh</command></term>
+             <listitem>
+               <para>
+                 Try to refresh the zone using TCP if UDP queries fail.
+                 The default is <command>yes</command>.
+               </para>
+             </listitem>
+           </varlistentry>
+
 </variablelist>
 
 </sect3>
@@ -4599,6 +4610,7 @@ Statement Grammar</title>
     <optional> allow-update { <replaceable>address_match_list</replaceable> } ; </optional>
     <optional> update-policy { <replaceable>update_policy_rule</replaceable> <optional>...</optional> } ; </optional>
     <optional> allow-update-forwarding { <replaceable>address_match_list</replaceable> } ; </optional>
+    <optional> try-tcp-refresh <replaceable>yes_or_no</replaceable>; </optional>
     <optional> also-notify { <replaceable>ip_addr</replaceable> <optional>port <replaceable>ip_port</replaceable></optional> ; <optional> <replaceable>ip_addr</replaceable> <optional>port <replaceable>ip_port</replaceable></optional> ; ... </optional> }; </optional>
     <optional> check-names (<constant>warn</constant>|<constant>fail</constant>|<constant>ignore</constant>) ; </optional>
     <optional> dialup <replaceable>dialup_option</replaceable> ; </optional>
@@ -4819,6 +4831,16 @@ zones the default is <command>warn</command>.
 </para>
 </listitem></varlistentry>
 
+             <varlistentry>
+               <term><command>try-tcp-refresh</command></term>
+                 <listitem>
+                   <para>
+                     See the description of
+                     <command>try-tcp-refresh</command> in <xref linkend="boolean_options"/>.
+                   </para>
+                 </listitem>
+               </varlistentry>
+
 <varlistentry><term><command>database</command></term>
 <listitem><para>Specify the type of database to be used for storing the
 zone data.  The string following the <command>database</command> keyword
index e6e86fd14dfcfdc0da3ad2f8eeccaa84e0c61862..b5f5d315c3b0e6dd954ade375187608cd84275ce 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: check.c,v 1.37.6.32 2005/11/03 23:08:41 marka Exp $ */
+/* $Id: check.c,v 1.37.6.32.2.1 2006/06/04 23:33:26 marka Exp $ */
 
 #include <config.h>
 
@@ -742,6 +742,7 @@ check_zoneconf(cfg_obj_t *zconfig, cfg_obj_t *config, isc_symtab_t *symtab,
        { "update-policy", MASTERZONE },
        { "database", MASTERZONE | SLAVEZONE | STUBZONE },
        { "key-directory", MASTERZONE },
+       { "try-tcp-refresh", SLAVEZONE },
        };
 
        static optionstable dialups[] = {
index b7680fa277411a555061681bed460196dcf9ecbd..9a9acd89ba1ea2aa1ab3687ffec194720ef429dd 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: zone.h,v 1.106.2.7.4.15 2004/10/26 02:08:43 marka Exp $ */
+/* $Id: zone.h,v 1.106.2.7.4.15.10.1 2006/06/04 23:33:26 marka Exp $ */
 
 #ifndef DNS_ZONE_H
 #define DNS_ZONE_H 1
@@ -52,6 +52,7 @@ typedef enum {
 #define DNS_ZONEOPT_USEALTXFRSRC  0x00000400U  /* use alternate transfer sources */
 #define DNS_ZONEOPT_CHECKNAMES   0x00000800U   /* check-names */
 #define DNS_ZONEOPT_CHECKNAMESFAIL 0x00001000U /* fatal check-name failures */
+#define DNS_ZONEOPT_TRYTCPREFRESH 0x01000000U /*%< try tcp refresh on udp failure */
 
 #ifndef NOMINUM_PUBLIC
 /*
index 34b7797ffd5ece19255a4cfa63efb54c19bf5bf1..3d2154412db202f63bb0d700e8851a39d56df54d 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: zone.c,v 1.333.2.23.2.59.4.2 2006/05/18 02:44:20 marka Exp $ */
+/* $Id: zone.c,v 1.333.2.23.2.59.4.3 2006/06/04 23:33:26 marka Exp $ */
 
 #include <config.h>
 
@@ -3547,7 +3547,8 @@ refresh_callback(isc_task_t *task, isc_event_t *event) {
                                     "master %s exceeded (source %s)",
                                     master, source);
                        /* Try with slave with TCP. */
-                       if (zone->type == dns_zone_slave)
+                       if (zone->type == dns_zone_slave &&
+                           DNS_ZONE_OPTION(zone, DNS_ZONEOPT_TRYTCPREFRESH))
                                goto tcp_transfer;
                } else
                        dns_zone_log(zone, ISC_LOG_INFO,
index bfc5dda425e6585c6f4647588165576479bf2918..199adf4938d8f93c1c078c34afd5eb1e01a8f7d2 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: namedconf.c,v 1.21.44.32 2005/10/26 05:06:40 marka Exp $ */
+/* $Id: namedconf.c,v 1.21.44.32.2.1 2006/06/04 23:33:26 marka Exp $ */
 
 #include <config.h>
 
@@ -782,6 +782,7 @@ zone_clauses[] = {
        { "use-alt-transfer-source", &cfg_type_boolean, 0 },
        { "zone-statistics", &cfg_type_boolean, 0 },
        { "key-directory", &cfg_type_qstring, 0 },
+       { "try-tcp-refresh", &cfg_type_boolean, 0 },
        { NULL, NULL, 0 }
 };