Browse Source

[1294] changed ixfr_disabled to use_ixfr

and reversed its interpretation
also removed the additional None check (it was checked twice)
Jelte Jansen 13 years ago
parent
commit
1bbe701823

+ 7 - 7
doc/guide/bind10-guide.xml

@@ -1304,13 +1304,13 @@ TODO
     <section>
     <section>
       <title>Enabling IXFR</title>
       <title>Enabling IXFR</title>
       <para>
       <para>
-	As noted above, <command>b10-xfrin</command> uses AXFR for
-	zone transfers by default.  To enable IXFR for zone transfers
-	for a particular zone, set the <userinput>ixfr_disabled</userinput>
-	configuration parameter to <userinput>true</userinput>.
-	In the above example of configuration sequence, you'll need
-	to add the following before performing <userinput>commit</userinput>:
-      <screen>&gt; <userinput>config set Xfrin/zones[0]/ixfr_disabled true</userinput></screen>
+        As noted above, <command>b10-xfrin</command> uses AXFR for
+        zone transfers by default.  To enable IXFR for zone transfers
+        for a particular zone, set the <userinput>use_ixfr</userinput>
+        configuration parameter to <userinput>true</userinput>.
+        In the above example of configuration sequence, you'll need
+        to add the following before performing <userinput>commit</userinput>:
+      <screen>&gt; <userinput>config set Xfrin/zones[0]/use_ixfr true</userinput></screen>
       </para>
       </para>
 
 
       <note><simpara>
       <note><simpara>

+ 3 - 3
src/bin/xfrin/b10-xfrin.xml

@@ -110,7 +110,7 @@ in separate zonemgr process.
       <varname>class</varname> (defaults to <quote>IN</quote>),
       <varname>class</varname> (defaults to <quote>IN</quote>),
       <varname>master_addr</varname> (the zone master to transfer from),
       <varname>master_addr</varname> (the zone master to transfer from),
       <varname>master_port</varname> (defaults to 53),
       <varname>master_port</varname> (defaults to 53),
-      <varname>ixfr_disabled</varname> (defaults to true), and
+      <varname>use_ixfr</varname> (defaults to false), and
       <varname>tsig_key</varname> (optional TSIG key to use).
       <varname>tsig_key</varname> (optional TSIG key to use).
       The <varname>tsig_key</varname> is specified using a full string
       The <varname>tsig_key</varname> is specified using a full string
       colon-delimited name:key:algorithm representation (e.g.
       colon-delimited name:key:algorithm representation (e.g.
@@ -158,7 +158,7 @@ in separate zonemgr process.
       according to the SOA's REFRESH time
       according to the SOA's REFRESH time
       to tell <command>b10-xfrin</command> that the zone needs to do
       to tell <command>b10-xfrin</command> that the zone needs to do
       a zone refresh.
       a zone refresh.
-      This is an internal command and not exposed to the administrator. 
+      This is an internal command and not exposed to the administrator.
 <!-- not defined in spec -->
 <!-- not defined in spec -->
     </para>
     </para>
 
 
@@ -208,7 +208,7 @@ add a usage example of xfrin -->
     </para></note>
     </para></note>
 
 
 <!-- TODO:
 <!-- TODO:
- it can handle more than one XFR in now, 
+ it can handle more than one XFR in now,
 but the problem is If SQLITE3 datasource part support multiple write
 but the problem is If SQLITE3 datasource part support multiple write
 operation
 operation
 -->
 -->

+ 13 - 13
src/bin/xfrin/tests/xfrin_test.py

@@ -1937,12 +1937,12 @@ class TestXfrin(unittest.TestCase):
                 self.assertEqual(zone_info.tsig_key.to_text(), TSIGKey(zone_config['tsig_key']).to_text())
                 self.assertEqual(zone_info.tsig_key.to_text(), TSIGKey(zone_config['tsig_key']).to_text())
             else:
             else:
                 self.assertIsNone(zone_info.tsig_key)
                 self.assertIsNone(zone_info.tsig_key)
-            if 'ixfr_disabled' in zone_config and\
-               zone_config.get('ixfr_disabled'):
-                self.assertTrue(zone_info.ixfr_disabled)
+            if 'use_ixfr' in zone_config and\
+               zone_config.get('use_ixfr'):
+                self.assertTrue(zone_info.use_ixfr)
             else:
             else:
                 # if not set, should default to False
                 # if not set, should default to False
-                self.assertFalse(zone_info.ixfr_disabled)
+                self.assertFalse(zone_info.use_ixfr)
 
 
     def test_command_handler_zones(self):
     def test_command_handler_zones(self):
         config1 = { 'transfers_in': 3,
         config1 = { 'transfers_in': 3,
@@ -1950,7 +1950,7 @@ class TestXfrin(unittest.TestCase):
                    { 'name': 'test.example.',
                    { 'name': 'test.example.',
                     'master_addr': '192.0.2.1',
                     'master_addr': '192.0.2.1',
                     'master_port': 53,
                     'master_port': 53,
-                    'ixfr_disabled': False
+                    'use_ixfr': False
                    }
                    }
                  ]}
                  ]}
         self.assertEqual(self.xfr.config_handler(config1)['result'][0], 0)
         self.assertEqual(self.xfr.config_handler(config1)['result'][0], 0)
@@ -1962,7 +1962,7 @@ class TestXfrin(unittest.TestCase):
                     'master_addr': '192.0.2.2',
                     'master_addr': '192.0.2.2',
                     'master_port': 53,
                     'master_port': 53,
                     'tsig_key': "example.com:SFuWd/q99SzF8Yzd1QbB9g==",
                     'tsig_key': "example.com:SFuWd/q99SzF8Yzd1QbB9g==",
-                    'ixfr_disabled': True
+                    'use_ixfr': True
                    }
                    }
                  ]}
                  ]}
         self.assertEqual(self.xfr.config_handler(config2)['result'][0], 0)
         self.assertEqual(self.xfr.config_handler(config2)['result'][0], 0)
@@ -2072,37 +2072,37 @@ class TestXfrin(unittest.TestCase):
         # since this has failed, we should still have the previous config
         # since this has failed, we should still have the previous config
         self._check_zones_config(config2)
         self._check_zones_config(config2)
 
 
-    def common_ixfr_setup(self, xfr_mode, ixfr_disabled):
+    def common_ixfr_setup(self, xfr_mode, use_ixfr):
         # This helper method explicitly sets up a zone configuration with
         # This helper method explicitly sets up a zone configuration with
-        # ixfr_disabled, and invokes either retransfer or refresh.
+        # use_ixfr, and invokes either retransfer or refresh.
         # Shared by some of the following test cases.
         # Shared by some of the following test cases.
         config = {'zones': [
         config = {'zones': [
                 {'name': 'example.com.',
                 {'name': 'example.com.',
                  'master_addr': '192.0.2.1',
                  'master_addr': '192.0.2.1',
-                 'ixfr_disabled': ixfr_disabled}]}
+                 'use_ixfr': use_ixfr}]}
         self.assertEqual(self.xfr.config_handler(config)['result'][0], 0)
         self.assertEqual(self.xfr.config_handler(config)['result'][0], 0)
         self.assertEqual(self.xfr.command_handler(xfr_mode,
         self.assertEqual(self.xfr.command_handler(xfr_mode,
                                                   self.args)['result'][0], 0)
                                                   self.args)['result'][0], 0)
 
 
     def test_command_handler_retransfer_ixfr_enabled(self):
     def test_command_handler_retransfer_ixfr_enabled(self):
         # If IXFR is explicitly enabled in config, IXFR will be used
         # If IXFR is explicitly enabled in config, IXFR will be used
-        self.common_ixfr_setup('retransfer', False)
+        self.common_ixfr_setup('retransfer', True)
         self.assertEqual(RRType.IXFR(), self.xfr.xfrin_started_request_type)
         self.assertEqual(RRType.IXFR(), self.xfr.xfrin_started_request_type)
 
 
     def test_command_handler_refresh_ixfr_enabled(self):
     def test_command_handler_refresh_ixfr_enabled(self):
         # Same for refresh
         # Same for refresh
-        self.common_ixfr_setup('refresh', False)
+        self.common_ixfr_setup('refresh', True)
         self.assertEqual(RRType.IXFR(), self.xfr.xfrin_started_request_type)
         self.assertEqual(RRType.IXFR(), self.xfr.xfrin_started_request_type)
 
 
     def test_command_handler_retransfer_ixfr_disabled(self):
     def test_command_handler_retransfer_ixfr_disabled(self):
         # Similar to the previous case, but explicitly disabled.  AXFR should
         # Similar to the previous case, but explicitly disabled.  AXFR should
         # be used.
         # be used.
-        self.common_ixfr_setup('retransfer', True)
+        self.common_ixfr_setup('retransfer', False)
         self.assertEqual(RRType.AXFR(), self.xfr.xfrin_started_request_type)
         self.assertEqual(RRType.AXFR(), self.xfr.xfrin_started_request_type)
 
 
     def test_command_handler_refresh_ixfr_disabled(self):
     def test_command_handler_refresh_ixfr_disabled(self):
         # Same for refresh
         # Same for refresh
-        self.common_ixfr_setup('refresh', True)
+        self.common_ixfr_setup('refresh', False)
         self.assertEqual(RRType.AXFR(), self.xfr.xfrin_started_request_type)
         self.assertEqual(RRType.AXFR(), self.xfr.xfrin_started_request_type)
 
 
 def raise_interrupt():
 def raise_interrupt():

+ 10 - 14
src/bin/xfrin/xfrin.py.in

@@ -876,12 +876,8 @@ class ZoneInfo:
         self.set_master_port(config_data.get('master_port'))
         self.set_master_port(config_data.get('master_port'))
         self.set_zone_class(config_data.get('class'))
         self.set_zone_class(config_data.get('class'))
         self.set_tsig_key(config_data.get('tsig_key'))
         self.set_tsig_key(config_data.get('tsig_key'))
-        # XXX: hardcode the default for ixfr_disabled.  We should retrieve
-        # it from the 
-        ixfr_disabled = config_data.get('ixfr_disabled')
-        if ixfr_disabled is None:
-            ixfr_disabled = True
-        self.set_ixfr_disabled(ixfr_disabled)
+        use_ixfr = config_data.get('use_ixfr')
+        self.set_use_ixfr(use_ixfr)
 
 
     def set_name(self, name_str):
     def set_name(self, name_str):
         """Set the name for this zone given a name string.
         """Set the name for this zone given a name string.
@@ -956,15 +952,15 @@ class ZoneInfo:
                 errmsg = "bad TSIG key string: " + tsig_key_str
                 errmsg = "bad TSIG key string: " + tsig_key_str
                 raise XfrinZoneInfoException(errmsg)
                 raise XfrinZoneInfoException(errmsg)
 
 
-    def set_ixfr_disabled(self, ixfr_disabled):
-        """Set ixfr_disabled. If set to False, it will use
-           IXFR for incoming transfers. If set to True, it will use AXFR.
+    def set_use_ixfr(self, use_ixfr):
+        """Set use_ixfr. If set to True, it will use
+           IXFR for incoming transfers. If set to False, it will use AXFR.
            At this moment there is no automatic fallback"""
            At this moment there is no automatic fallback"""
-        if ixfr_disabled is None:
-            self.ixfr_disabled = \
-                self._module_cc.get_default_value("zones/ixfr_disabled")
+        if use_ixfr is None:
+            self.use_ixfr = \
+                self._module_cc.get_default_value("zones/use_ixfr")
         else:
         else:
-            self.ixfr_disabled = ixfr_disabled
+            self.use_ixfr = use_ixfr
 
 
     def get_master_addr_info(self):
     def get_master_addr_info(self):
         return (self.master_addr.family, socket.SOCK_STREAM,
         return (self.master_addr.family, socket.SOCK_STREAM,
@@ -1091,7 +1087,7 @@ class Xfrin:
                 request_type = RRType.AXFR()
                 request_type = RRType.AXFR()
                 if zone_info:
                 if zone_info:
                     tsig_key = zone_info.tsig_key
                     tsig_key = zone_info.tsig_key
-                    if not zone_info.ixfr_disabled:
+                    if zone_info.use_ixfr:
                         request_type = RRType.IXFR()
                         request_type = RRType.IXFR()
                 db_file = args.get('db_file') or self._get_db_file()
                 db_file = args.get('db_file') or self._get_db_file()
                 ret = self.xfrin_start(zone_name,
                 ret = self.xfrin_start(zone_name,

+ 2 - 2
src/bin/xfrin/xfrin.spec

@@ -44,10 +44,10 @@
             "item_type": "string",
             "item_type": "string",
             "item_optional": true
             "item_optional": true
           },
           },
-          { "item_name": "ixfr_disabled",
+          { "item_name": "use_ixfr",
             "item_type": "boolean",
             "item_type": "boolean",
             "item_optional": false,
             "item_optional": false,
-            "item_default": true
+            "item_default": false
           }
           }
           ]
           ]
         }
         }