Browse Source

[trac945] Accept even 0 as a value

Michal 'vorner' Vaner 14 years ago
parent
commit
37035a073b
1 changed files with 19 additions and 5 deletions
  1. 19 5
      src/bin/zonemgr/zonemgr.py.in

+ 19 - 5
src/bin/zonemgr/zonemgr.py.in

@@ -417,19 +417,33 @@ class ZonemgrRefresh:
 
         # store the values so we can restore them if there is a problem
         lowerbound_refresh_backup = self._lowerbound_refresh
-        self._lowerbound_refresh = new_config.get('lowerbound_refresh') or self._lowerbound_refresh
+        # Get a new value, but only if it is defined
+        # We don't use "value or default", because if value would be
+        # 0, we would take default
+        def val_or_default(value, default):
+            if value is not None:
+                return value
+            else:
+                return default
+
+        self._lowerbound_refresh = val_or_default(
+            new_config.get('lowerbound_refresh'), self._lowerbound_refresh)
 
         lowerbound_retry_backup = self._lowerbound_retry
-        self._lowerbound_retry = new_config.get('lowerbound_retry') or self._lowerbound_retry
+        self._lowerbound_retry = val_or_default(
+            new_config.get('lowerbound_retry'), self._lowerbound_retry)
 
         max_transfer_timeout_backup = self._max_transfer_timeout
-        self._max_transfer_timeout = new_config.get('max_transfer_timeout') or self._max_transfer_timeout
+        self._max_transfer_timeout = val_or_default(
+            new_config.get('max_transfer_timeout'), self._max_transfer_timeout)
 
         refresh_jitter_backup = self._refresh_jitter
-        self._refresh_jitter = new_config.get('refresh_jitter') or self._refresh_jitter
+        self._refresh_jitter = val_or_default(
+            new_config.get('refresh_jitter'), self._refresh_jitter)
 
         reload_jitter_backup = self._reload_jitter
-        self._reload_jitter = new_config.get('reload_jitter') or self._reload_jitter
+        self._reload_jitter = val_or_default(
+            new_config.get('reload_jitter'), self._reload_jitter)
         try:
             required = {}
             secondary_zones = new_config.get('secondary_zones')