From c8567be6a05473c24409b1ca8965023452c2a10b Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Mon, 8 Mar 2021 12:03:07 +0100 Subject: [PATCH] rec: Fix the EDNS padding python implementation for dnspython 2.0.0 --- regression-tests.recursor-dnssec/paddingoption.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/regression-tests.recursor-dnssec/paddingoption.py b/regression-tests.recursor-dnssec/paddingoption.py index 42c2f3f663..728da93a7d 100644 --- a/regression-tests.recursor-dnssec/paddingoption.py +++ b/regression-tests.recursor-dnssec/paddingoption.py @@ -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__, -- 2.39.2