summaryrefslogtreecommitdiff
path: root/dns/renderer.py
diff options
context:
space:
mode:
authorArthur Gautier <baloo@gandi.net>2016-03-29 17:51:13 +0000
committerArthur Gautier <baloo@gandi.net>2016-04-21 15:33:05 +0000
commit5f59c1f3071e2ba6aad4f163ec7884ca8e4f1cc4 (patch)
tree3d4d523604f965db8e4ebea3d24d1aad24c41415 /dns/renderer.py
parentc1a2e4585a1404ee0cfaa6d2d2ad072e8807ef3e (diff)
downloaddnspython-5f59c1f3071e2ba6aad4f163ec7884ca8e4f1cc4.tar.gz
python3 support
Signed-off-by: Arthur Gautier <baloo@gandi.net>
Diffstat (limited to 'dns/renderer.py')
-rw-r--r--dns/renderer.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/dns/renderer.py b/dns/renderer.py
index 1708e92..ed3ec66 100644
--- a/dns/renderer.py
+++ b/dns/renderer.py
@@ -15,20 +15,25 @@
"""Help for building DNS wire format messages"""
-import cStringIO
+from io import BytesIO
import struct
import random
import time
+import sys
import dns.exception
import dns.tsig
+from ._compat import long
+
QUESTION = 0
ANSWER = 1
AUTHORITY = 2
ADDITIONAL = 3
+
class Renderer(object):
+
"""Helper class for building DNS wire-format messages.
Most applications can use the higher-level L{dns.message.Message}
@@ -51,7 +56,7 @@ class Renderer(object):
wire = r.get_wire()
@ivar output: where rendering is written
- @type output: cStringIO.StringIO object
+ @type output: BytesIO object
@ivar id: the message id
@type id: int
@ivar flags: the message flags
@@ -86,7 +91,7 @@ class Renderer(object):
@type origin: dns.name.Namem or None.
"""
- self.output = cStringIO.StringIO()
+ self.output = BytesIO()
if id is None:
self.id = random.randint(0, 65535)
else:
@@ -97,7 +102,7 @@ class Renderer(object):
self.compress = {}
self.section = QUESTION
self.counts = [0, 0, 0, 0]
- self.output.write('\x00' * 12)
+ self.output.write(b'\x00' * 12)
self.mac = ''
def _rollback(self, where):
@@ -112,7 +117,7 @@ class Renderer(object):
self.output.seek(where)
self.output.truncate()
keys_to_delete = []
- for k, v in self.compress.iteritems():
+ for k, v in self.compress.items():
if v >= where:
keys_to_delete.append(k)
for k in keys_to_delete:
@@ -218,13 +223,13 @@ class Renderer(object):
"""
# make sure the EDNS version in ednsflags agrees with edns
- ednsflags &= 0xFF00FFFFL
+ ednsflags &= long(0xFF00FFFF)
ednsflags |= (edns << 16)
self._set_section(ADDITIONAL)
before = self.output.tell()
self.output.write(struct.pack('!BHHIH', 0, dns.rdatatype.OPT, payload,
ednsflags, 0))
- if not options is None:
+ if options is not None:
lstart = self.output.tell()
for opt in options:
stuff = struct.pack("!HH", opt.otype, 0)