diff options
author | Camil Staps | 2016-05-30 15:48:27 +0200 |
---|---|---|
committer | Camil Staps | 2016-05-30 15:48:27 +0200 |
commit | fb2cf733965248569a7e5f07eb0866ef010b5c8d (patch) | |
tree | 7f41583fc461e0faf61fbdbcba76466dcebe5243 /project2/proj2_s4498062/dns/zone.py | |
parent | Remove old project 2 (diff) | |
parent | Fixes for resolver & server; tests for resolver; cloogle zonefile (diff) |
Merge branch 'newframework'
Conflicts:
assignment7.tex
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..8ada3db --- /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 |