diff options
author | Camil Staps | 2016-04-14 20:07:12 +0200 |
---|---|---|
committer | Camil Staps | 2016-04-14 20:07:12 +0200 |
commit | 872e11deb29e87eddcfaca76d555acc16e329653 (patch) | |
tree | 00aa2aec0b5a4e6874d6de7c0f9a6bf860bf1e11 /project2/proj2_s4498062/dns/zone.py | |
parent | Fix LaTeX warning (diff) |
Added project2 framework
Diffstat (limited to 'project2/proj2_s4498062/dns/zone.py')
-rw-r--r-- | project2/proj2_s4498062/dns/zone.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/project2/proj2_s4498062/dns/zone.py b/project2/proj2_s4498062/dns/zone.py new file mode 100644 index 0000000..e4d3f27 --- /dev/null +++ b/project2/proj2_s4498062/dns/zone.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python2
+
+""" Zones of domain name space
+
+See section 6.1.2 of RFC 1035 and section 4.2 of RFC 1034.
+Instead of tree structures we simply use dictionaries from domain names to
+zones or record sets.
+
+These classes are merely a suggestion, feel free to use something else.
+"""
+
+
+class Catalog(object):
+ """ A catalog of zones """
+
+ def __init__(self):
+ """ Initialize the catalog """
+ self.zones = {}
+
+ def add_zone(self, name, zone):
+ """ Add a new zone to the catalog
+
+ Args:
+ name (str): root domain name
+ zone (Zone): zone
+ """
+ self.zones[name] = zone
+
+
+class Zone(object):
+ """ A zone in the domain name space """
+
+ def __init__(self):
+ """ Initialize the Zone """
+ self.records = {}
+
+ def add_node(self, name, record_set):
+ """ Add a record set to the zone
+
+ Args:
+ name (str): domain name
+ record_set ([ResourceRecord]): resource records
+ """
+ self.records[name] = record_set
+
+ def read_master_file(self, filename):
+ """ Read the zone from a master file
+
+ See section 5 of RFC 1035.
+
+ Args:
+ filename (str): the filename of the master file
+ """
+ pass
|