]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
rec: Fix the EDNS padding python implementation for dnspython 2.0.0
authorRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 8 Mar 2021 11:03:07 +0000 (12:03 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 8 Mar 2021 11:03:07 +0000 (12:03 +0100)
regression-tests.recursor-dnssec/paddingoption.py

index 42c2f3f66363d03f90df328e98285867b82558b5..728da93a7d092b884c5f225833b25e4d17f6b9ad 100644 (file)
@@ -14,10 +14,13 @@ class PaddingOption(dns.edns.Option):
         super(PaddingOption, self).__init__(12)
         self.numberOfBytes = numberOfBytes
 
-    def to_wire(self, file):
+    def to_wire(self, file=None):
         """Create EDNS packet as defined in rfc7830."""
 
-        file.write(bytes(self.numberOfBytes))
+        if file:
+            file.write(bytes(self.numberOfBytes))
+        else:
+            return bytes(self.numberOfBytes)
 
     def from_wire(cls, otype, wire, current, olen):
         """Read EDNS packet as defined in rfc7830.
@@ -32,6 +35,12 @@ class PaddingOption(dns.edns.Option):
 
     from_wire = classmethod(from_wire)
 
+    # needed in 2.0.0
+    @classmethod
+    def from_wire_parser(cls, otype, parser):
+        data = parser.get_remaining()
+        return cls(len(data))
+
     def __repr__(self):
         return '%s(%d)' % (
             self.__class__.__name__,