rpms/nsd/devel nsd.zones2nsd.conf, NONE, 1.1 .cvsignore, 1.7, 1.8 nsd.spec, 1.17, 1.18 sources, 1.7, 1.8

Paul Wouters (pwouters) fedora-extras-commits at redhat.com
Fri Mar 23 04:28:12 UTC 2007


Author: pwouters

Update of /cvs/extras/rpms/nsd/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv32519

Modified Files:
	.cvsignore nsd.spec sources 
Added Files:
	nsd.zones2nsd.conf 
Log Message:
Upgraded to 3.0.5



--- NEW FILE nsd.zones2nsd.conf ---
#!/usr/bin/env python
# Contributed 2006 by Stephane Bortzmeyer.
# Changed 20070102 by Wouter to handle primary zones and file names.

# Converts a nsd 2 "nsd.zones" file to a nsd 3 "nsd.conf" file.

# Change at will
nsd_zones_name = "/etc/nsd.zones"
key_dir = "/etc/nsd/keys" # Directory holding the TSIG keys

import re
import os.path

primary_line_re = re.compile("^zone\s+([a-z0-9\.-]+)\s+([a-z0-9/\.-]+)\s*$", re.IGNORECASE)
secondary_line_re = re.compile("^zone\s+([a-z0-9\.-]+)\s+([a-z0-9/\.-]+)\s+masters\s+([0-9a-f:\. ]*)\s*$", re.IGNORECASE)
notify_line_re = re.compile("^zone\s+([a-z0-9\.-]+)\s+([a-z0-9/\.-]+)\s+notify\s+([0-9a-f:\. ]*)\s*$", re.IGNORECASE)
comment_re = re.compile("^\s*;")
empty_re = re.compile("^\s*$")
                        
nsd_zones = open(nsd_zones_name)
keys = {}
for line in nsd_zones.xreadlines():
    if comment_re.search(line) or empty_re.search(line):
	pass
    elif secondary_line_re.search(line):
    	match = secondary_line_re.search(line)
        zone = match.group(1)
        zonefile = match.group(2)
        master_group = match.group(3)
        masters = re.split("\s+", master_group)
        print """zone:
        name: "%s"
        zonefile: "%s"
        # This is to allow "nsdc update" to work.
        allow-notify: 127.0.0.1 NOKEY
        # This is a slave zone. Masters are listed below.""" % (zone, zonefile)
        for master in masters:
            if re.search("^\s*$", master):
                continue
            key_filename = "%s/%s.tsiginfo" % (key_dir, master)
            if os.path.exists(key_filename):
                key_content = open(key_filename)
                peer_ip = key_content.readline()
                peer_ip = peer_ip[:-1]
                key_name = key_content.readline()
                key_name = key_name[:-1]
                algorithm = key_content.readline()
                algorithm = int(algorithm[:-1])
                if algorithm == 157:
                    algorithm_name = "hmac-md5"
                else:
                    raise Exception("Unsupported TSIG algorithm %i" % algorithm)
                secret = key_content.readline()
                secret = secret[:-1]
                key_content.close()
                key = key_name
                keys[key_name] = {
                    'algorithm': algorithm_name,
                    'secret': secret}
            else:
                key = "NOKEY"
            print """        allow-notify: %s %s
        request-xfr: %s %s""" % (master, key, master, key)
        print ""
    elif primary_line_re.search(line):
	match = primary_line_re.search(line)
	zone = match.group(1)
	zonefile = match.group(2)
	print """zone:
	name: "%s"
	zonefile: "%s"
	""" % (zone, zonefile)
    elif notify_line_re.search(line):
    	match = notify_line_re.search(line)
        zone = match.group(1)
        zonefile = match.group(2)
        notify_group = match.group(3)
        notifies = re.split("\s+", notify_group)
        print """zone:
        name: "%s"
        zonefile: "%s"
        # This is a master zone. Slaves are listed below.""" % (zone, zonefile)
        for notify in notifies:
            if re.search("^\s*$", notify):
                continue
            key = "NOKEY"
            print """        notify: %s %s""" % (notify, key)
        print ""
    else:
	raise Exception("Invalid line \"%s\"" % line)
nsd_zones.close()
for key in keys.keys():
    print """key:
        name: "%s"
        algorithm: %s
        secret: "%s" """ % (key, keys[key]['algorithm'], keys[key]['secret'])
    print ""
    
## Local Variables: ##
## mode:python ##
## End: ##


Index: .cvsignore
===================================================================
RCS file: /cvs/extras/rpms/nsd/devel/.cvsignore,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- .cvsignore	7 Dec 2006 16:13:05 -0000	1.7
+++ .cvsignore	23 Mar 2007 04:27:39 -0000	1.8
@@ -3,3 +3,4 @@
 nsd.init
 nsd-3.0.2.tar.gz
 nsd-3.0.3.tar.gz
+nsd-3.0.5.tar.gz


Index: nsd.spec
===================================================================
RCS file: /cvs/extras/rpms/nsd/devel/nsd.spec,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- nsd.spec	7 Dec 2006 16:13:05 -0000	1.17
+++ nsd.spec	23 Mar 2007 04:27:39 -0000	1.18
@@ -1,6 +1,6 @@
 Summary: NSD is a complete implementation of an authoritative DNS name server
 Name: nsd
-Version: 3.0.3
+Version: 3.0.5
 Release: 1%{?dist}
 License: BSD-like
 Url: http://open.nlnetlabs.nl/nsd/
@@ -73,6 +73,9 @@
 fi
 
 %changelog
+* Fri Mar 23 2007 Paul Wouters <paul at xelerance.com> 3.0.5-1
+- Upgraded to 3.0.5
+
 * Thu Dec  7 2006 Paul Wouters <paul at xelerance.com> 3.0.3-1
 - Upgraded to 3.0.3
 


Index: sources
===================================================================
RCS file: /cvs/extras/rpms/nsd/devel/sources,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- sources	7 Dec 2006 16:13:05 -0000	1.7
+++ sources	23 Mar 2007 04:27:39 -0000	1.8
@@ -3,3 +3,4 @@
 e64633bb4e6eb46e8e16049e87333cb9  nsd.init
 a51f7d2146d8f5901b825b2c0672c86a  nsd-3.0.2.tar.gz
 73f59bebd0af6ed2d2f0dad2b7727229  nsd-3.0.3.tar.gz
+ab72e227d600889319d28c4387a95cef  nsd-3.0.5.tar.gz




More information about the fedora-extras-commits mailing list