bin/pvl.dns-zone
changeset 637 6674b18f6829
parent 636 d21df33dd1d4
child 641 9d36e312e6a7
equal deleted inserted replaced
636:d21df33dd1d4 637:6674b18f6829
    55     parser.add_option('--forward-zone',         action='store_true', 
    55     parser.add_option('--forward-zone',         action='store_true', 
    56             help="Generate forward zone")
    56             help="Generate forward zone")
    57 
    57 
    58     parser.add_option('--forward-txt',          action='store_true',
    58     parser.add_option('--forward-txt',          action='store_true',
    59             help="Generate TXT records for forward zone")
    59             help="Generate TXT records for forward zone")
    60 
       
    61     parser.add_option('--forward-mx',           metavar='MX',
       
    62             help="Generate MX records for forward zone")
       
    63 
    60 
    64     # reverse stage
    61     # reverse stage
    65     parser.add_option('--reverse-domain',       metavar='DOMAIN',
    62     parser.add_option('--reverse-domain',       metavar='DOMAIN',
    66             help="Domain to use for hosts in reverse zone")
    63             help="Domain to use for hosts in reverse zone")
    67 
    64 
   171                     serial, soa.refresh, soa.retry, soa.expire, soa.nxttl
   168                     serial, soa.refresh, soa.retry, soa.expire, soa.nxttl
   172             )
   169             )
   173         else :
   170         else :
   174             yield line, rr
   171             yield line, rr
   175 
   172 
   176 def process_zone_forwards (zone, txt=False, mx=False) :
   173 def process_zone_forwards (zone, txt=False) :
   177     """
   174     """
   178         Process zone data -> forward zone data.
   175         Process zone data -> forward zone data.
   179     """
   176     """
   180 
   177 
   181     for line, r in zone :
   178     for line, r in zone :
   186                 # comment?
   183                 # comment?
   187                 comment = r.line.comment
   184                 comment = r.line.comment
   188 
   185 
   189                 if comment :
   186                 if comment :
   190                     yield line, ZoneRecord.TXT(None, comment, ttl=r.ttl)
   187                     yield line, ZoneRecord.TXT(None, comment, ttl=r.ttl)
   191 
       
   192            
   188            
   193             # XXX: RP, do we need it?
       
   194 
       
   195             if mx :
       
   196                 # XXX: is this even a good idea?
       
   197                 yield line, ZoneRecord.MX(None, 10, mx, ttl=r.ttl)
       
   198 
       
   199 def process_zone_reverse (zone, origin, domain) :
   189 def process_zone_reverse (zone, origin, domain) :
   200     """
   190     """
   201         Process zone data -> reverse zone data.
   191         Process zone data -> reverse zone data.
   202     """
   192     """
   203 
   193 
   281         zone = list(process_zone_serial(zone, serial=options.serial))
   271         zone = list(process_zone_serial(zone, serial=options.serial))
   282 
   272 
   283     if options.forward_zone :
   273     if options.forward_zone :
   284         log.info("Generate forward zone...")
   274         log.info("Generate forward zone...")
   285 
   275 
   286         zone = list(process_zone_forwards(zone, txt=options.forward_txt, mx=options.forward_mx))
   276         zone = list(process_zone_forwards(zone, txt=options.forward_txt))
   287 
   277 
   288     if options.reverse_zone :
   278     if options.reverse_zone :
   289         if ':' in options.reverse_zone :
   279         if ':' in options.reverse_zone :
   290             # IPv6
   280             # IPv6
   291             origin = reverse_ipv6(options.reverse_zone)
   281             origin = reverse_ipv6(options.reverse_zone)