diff options
Diffstat (limited to 'project2/proj2_s4498062/dns/resource.py')
-rw-r--r-- | project2/proj2_s4498062/dns/resource.py | 42 |
1 files changed, 24 insertions, 18 deletions
diff --git a/project2/proj2_s4498062/dns/resource.py b/project2/proj2_s4498062/dns/resource.py index 350c87d..572397f 100644 --- a/project2/proj2_s4498062/dns/resource.py +++ b/project2/proj2_s4498062/dns/resource.py @@ -1,5 +1,3 @@ -#!/usr/bin/env python2 - """ A DNS resource record This class contains classes for DNS resource records and record data. This @@ -10,7 +8,6 @@ of your resolver and server. import socket import struct -from dns.classes import Class from dns.types import Type @@ -25,34 +22,33 @@ class ResourceRecord(object): class_ (Class): the class rdata (RecordData): the record data """ - self.name = name - self.type_ = type_ - self.class_ = class_ - self.ttl = ttl - self.rdata = rdata + self.name = name + self.type_ = type_ + self.class_ = class_ + self.ttl = ttl + self.rdata = rdata def to_bytes(self, offset, composer): """ Convert ResourceRecord to bytes """ name = composer.to_bytes(offset, [self.name]) offset += len(name) rdata = self.rdata.to_bytes(offset, composer) - return (name + - struct.pack("!HHIH", - self.type_, - self.class_, - self.ttl, - len(rdata)) + - rdata) + return (name + struct.pack( + "!HHIH", + self.type_, + self.class_, + self.ttl, + len(rdata)) + rdata) @classmethod def from_bytes(cls, packet, offset, parser): """ Convert ResourceRecord from bytes """ names, offset = parser.from_bytes(packet, offset, 1) name = names[0] - type_, class_, ttl, rdlength = struct.unpack_from("!HHIH", packet, offset) + type_, class_, ttl, rdlen = struct.unpack_from("!HHIH", packet, offset) offset += 10 - rdata = RecordData.from_bytes(type_, packet, offset, rdlength, parser) - offset += rdlength + rdata = RecordData.from_bytes(type_, packet, offset, rdlen, parser) + offset += rdlen return cls(name, type_, class_, ttl, rdata), offset @@ -115,6 +111,8 @@ class RecordData(object): class ARecordData(RecordData): + """Data of an A record""" + def to_bytes(self, offset, composer): """ Convert to bytes @@ -139,6 +137,8 @@ class ARecordData(RecordData): class CNAMERecordData(RecordData): + """Data of a CNAME record""" + def to_bytes(self, offset, composer): """ Convert to bytes @@ -164,6 +164,8 @@ class CNAMERecordData(RecordData): class NSRecordData(RecordData): + """Data of an NS record""" + def to_bytes(self, offset, composer): """ Convert to bytes @@ -189,6 +191,8 @@ class NSRecordData(RecordData): class AAAARecordData(RecordData): + """Data of an AAAA record""" + def to_bytes(self, offset, composer): """ Convert to bytes @@ -213,6 +217,8 @@ class AAAARecordData(RecordData): class GenericRecordData(RecordData): + """Data of a generic record""" + def to_bytes(self, offset, composer): """ Convert to bytes |