]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2275. [func] Add support to dig to perform IXFR queries over UDP.
authorMark Andrews <marka@isc.org>
Mon, 3 Dec 2007 00:21:48 +0000 (00:21 +0000)
committerMark Andrews <marka@isc.org>
Mon, 3 Dec 2007 00:21:48 +0000 (00:21 +0000)
                        [RT #17235]

CHANGES
bin/dig/dig.c
bin/dig/dighost.c
bin/dig/host.c

diff --git a/CHANGES b/CHANGES
index 4b1ade82b4fd1686c3dd59d16127ceb4ff240017..4d1cd443d924601bb9fb4164fb7eedd42442b87d 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+2275.  [func]          Add support to dig to perform IXFR queries over UDP.
+                       [RT #17235]
+
 2274.  [func]          Log zone transfer statistics. [RT #17161]
 
 2273.  [bug]           Adjust log level to WARNING when saving inconsistant
index c2e8293da6b217b0589543b97cd83c986f8561d2..f4b43890136b9eab359b2bf1b730de6188027a98 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: dig.c,v 1.217 2007/06/18 23:47:17 tbox Exp $ */
+/* $Id: dig.c,v 1.218 2007/12/03 00:21:48 marka Exp $ */
 
 /*! \file */
 
@@ -1253,6 +1253,7 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
                                                MAXSERIAL);
                                (*lookup)->section_question = plusquest;
                                (*lookup)->comments = pluscomm;
+                               (*lookup)->tcp_mode = ISC_TRUE;
                        } else {
                                (*lookup)->rdtype = rdtype;
                                (*lookup)->rdtypeset = ISC_TRUE;
@@ -1593,6 +1594,7 @@ parse_args(isc_boolean_t is_batchfile, isc_boolean_t config_only,
                                                lookup->section_question =
                                                        plusquest;
                                                lookup->comments = pluscomm;
+                                               lookup->tcp_mode = ISC_TRUE;
                                        } else {
                                                lookup->rdtype = rdtype;
                                                lookup->rdtypeset = ISC_TRUE;
index bf0ea7adcbfb3923d39948b884742050cab8e54a..3b6c2686ddd3bccfa47572f38850e8f24fbddc29 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: dighost.c,v 1.303 2007/06/18 23:47:17 tbox Exp $ */
+/* $Id: dighost.c,v 1.304 2007/12/03 00:21:48 marka Exp $ */
 
 /*! \file
  *  \note
@@ -1950,12 +1950,15 @@ setup_lookup(dig_lookup_t *lookup) {
 
        if ((lookup->rdtype == dns_rdatatype_axfr) ||
            (lookup->rdtype == dns_rdatatype_ixfr)) {
-               lookup->doing_xfr = ISC_TRUE;
                /*
-                * Force TCP mode if we're doing an xfr.
-                * XXX UDP ixfr's would be useful
+                * Force TCP mode if we're doing an axfr.
                 */
-               lookup->tcp_mode = ISC_TRUE;
+               if (lookup->rdtype == dns_rdatatype_axfr) {
+                       lookup->doing_xfr = ISC_TRUE;
+                       lookup->tcp_mode = ISC_TRUE;
+               } else if (lookup->tcp_mode) {
+                       lookup->doing_xfr = ISC_TRUE;
+               }
        }
 
        add_question(lookup->sendmsg, lookup->name, lookup->rdclass,
index 2b12b919408414a7b8a72211432fee1297cc8955..ac29ae6c70d0ca204f615ac12e0872cb5f4e9dae 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: host.c,v 1.115 2007/08/15 04:40:30 marka Exp $ */
+/* $Id: host.c,v 1.116 2007/12/03 00:21:48 marka Exp $ */
 
 /*! \file */
 
@@ -689,6 +689,7 @@ parse_args(isc_boolean_t is_batchfile, int argc, char **argv) {
                                lookup->tcp_mode = ISC_TRUE;
                        } else if (rdtype == dns_rdatatype_ixfr) {
                                lookup->ixfr_serial = serial;
+                               lookup->tcp_mode = ISC_TRUE;
                                list_type = rdtype;
 #ifdef WITH_IDN
                        } else if (rdtype == dns_rdatatype_a ||