From 7500f59ce0dbd8d376c008001dd638ad2844ab2b Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Mon, 23 May 2016 22:01:31 +0200 Subject: Framework 2 --- project2/proj2_s4498062/dns/zone.py | 54 +++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 project2/proj2_s4498062/dns/zone.py (limited to 'project2/proj2_s4498062/dns/zone.py') 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 -- cgit v1.2.3