Browse Source

treat TTL as a string not an int

git-svn-id: svn://bind10.isc.org/svn/bind10/trunk@1288 e5f2f494-b856-4b98-b285-d166d9295462
Evan Hunt 15 years ago
parent
commit
2aa9ae9f43
1 changed files with 14 additions and 14 deletions
  1. 14 14
      src/lib/python/isc/auth/master.py

+ 14 - 14
src/lib/python/isc/auth/master.py

@@ -131,7 +131,7 @@ def parse_ttl(s):
         ttl *= 3600
         ttl *= 3600
     elif suffix.lower() == 'm':
     elif suffix.lower() == 'm':
         ttl *= 60
         ttl *= 60
-    return ttl
+    return str(ttl)
 
 
 #########################################################################
 #########################################################################
 # records: generator function to return complete RRs from the zone file,
 # records: generator function to return complete RRs from the zone file,
@@ -176,9 +176,9 @@ def records(input):
 # define the MasterFile class for reading zone master files
 # define the MasterFile class for reading zone master files
 #########################################################################
 #########################################################################
 class MasterFile:
 class MasterFile:
-    __defclass = 'IN'
+    __rrclass = 'IN'
     __maxttl = 0x7fffffff
     __maxttl = 0x7fffffff
-    __defttl = ''
+    __ttl = ''
     __zonefile = ''
     __zonefile = ''
     __name = ''
     __name = ''
 
 
@@ -226,8 +226,8 @@ class MasterFile:
                 raise MasterFileError('Invalid TTL: "' + second + '"')
                 raise MasterFileError('Invalid TTL: "' + second + '"')
             if more:
             if more:
                 raise MasterFileError('Invalid $TTL statement')
                 raise MasterFileError('Invalid $TTL statement')
-            self.__defttl = parse_ttl(second)
-            if self.__defttl > self.__maxttl:
+            self.__ttl = parse_ttl(second)
+            if self.__ttl > self.__maxttl:
                 raise MasterFileError('TTL too high: ' + second)
                 raise MasterFileError('TTL too high: ' + second)
             return True
             return True
         elif re.match('\$generate', first, re.I):
         elif re.match('\$generate', first, re.I):
@@ -290,14 +290,14 @@ class MasterFile:
         if istype(list[2]) and not istype(list[1]):
         if istype(list[2]) and not istype(list[1]):
             if isclass(list[1]) and not isttl(list[0]) and isname(list[0]):
             if isclass(list[1]) and not isttl(list[0]) and isname(list[0]):
                 rrclass = list[1]
                 rrclass = list[1]
-                ttl = self.__defttl
+                ttl = self.__ttl
                 name = list[0]
                 name = list[0]
             elif not isclass(list[1]) and isttl(list[1]) and isname(list[0]):
             elif not isclass(list[1]) and isttl(list[1]) and isname(list[0]):
-                rrclass = self.__defclass
+                rrclass = self.__rrclass
                 ttl = parse_ttl(list[1])
                 ttl = parse_ttl(list[1])
                 name = list[0]
                 name = list[0]
             elif curname and isclass(list[1]) and isttl(list[0]):
             elif curname and isclass(list[1]) and isttl(list[0]):
-                rrclass = self.__defclass
+                rrclass = self.__rrclass
                 ttl = parse_ttl(list[0])
                 ttl = parse_ttl(list[0])
                 name = curname
                 name = curname
             else:
             else:
@@ -325,11 +325,11 @@ class MasterFile:
             return ret
             return ret
 
 
         if istype(list[1]):
         if istype(list[1]):
-            rrclass = self.__defclass
+            rrclass = self.__rrclass
             rrtype = list[1]
             rrtype = list[1]
             if list[0].lower() == 'rrsig':
             if list[0].lower() == 'rrsig':
                 name = curname
                 name = curname
-                ttl = self.__defttl
+                ttl = self.__ttl
                 rrtype = list[0]
                 rrtype = list[0]
                 rdata = ' '.join(list[1:])
                 rdata = ' '.join(list[1:])
             elif isttl(list[0]):
             elif isttl(list[0]):
@@ -338,7 +338,7 @@ class MasterFile:
                 rdata = ' '.join(list[2:])
                 rdata = ' '.join(list[2:])
             elif isname(list[0]):
             elif isname(list[0]):
                 name = list[0]
                 name = list[0]
-                ttl = self.__defttl
+                ttl = self.__ttl
                 rdata = ' '.join(list[2:])
                 rdata = ' '.join(list[2:])
             else:
             else:
                 raise MasterFileError("Cannot parse RR: " + record)
                 raise MasterFileError("Cannot parse RR: " + record)
@@ -385,7 +385,7 @@ class MasterFile:
             if not result:
             if not result:
                 first, rdata = pop(record)
                 first, rdata = pop(record)
                 if istype(first):
                 if istype(first):
-                    result = name, self.__defttl, self.__defclass, first, rdata
+                    result = name, self.__ttl, self.__rrclass, first, rdata
 
 
             if not result:
             if not result:
                 raise MasterFileError("Cannot parse RR: " + record)
                 raise MasterFileError("Cannot parse RR: " + record)
@@ -452,7 +452,7 @@ class MasterFile:
     def reset(self):
     def reset(self):
         self.__zonefile.seek(0)
         self.__zonefile.seek(0)
         self.__origin = self.__initial_origin
         self.__origin = self.__initial_origin
-        self.__defttl = ''
+        self.__ttl = ''
 
 
 #########################################################################
 #########################################################################
 # main: used for testing; parse a zone file and print out each record
 # main: used for testing; parse a zone file and print out each record
@@ -468,7 +468,7 @@ def main():
     print ('---------------------')
     print ('---------------------')
     for name, ttl, rrclass, rrtype, rdata in master.zonedata():
     for name, ttl, rrclass, rrtype, rdata in master.zonedata():
         print ('name: ' + name)
         print ('name: ' + name)
-        print ('ttl: ' + str(ttl))
+        print ('ttl: ' + ttl)
         print ('rrclass: ' + rrclass)
         print ('rrclass: ' + rrclass)
         print ('rrtype: ' + rrtype)
         print ('rrtype: ' + rrtype)
         print ('rdata: ' + rdata)
         print ('rdata: ' + rdata)