From 382000b2347131da35142778c074fdb2abc609e5 Mon Sep 17 00:00:00 2001 From: Brian Wellington Date: Tue, 30 Jun 2020 10:41:01 -0700 Subject: [PATCH] Remove dns.message.Message multi field. The only user of this is the internal _WireReader class, so just pass it the flag rather than store it on the message. --- dns/message.py | 13 ++++++------- dns/message.pyi | 1 - 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/dns/message.py b/dns/message.py index 9fd3d77b..00359ef3 100644 --- a/dns/message.py +++ b/dns/message.py @@ -115,7 +115,6 @@ class Message: self.xfr = False self.origin = None self.tsig_ctx = None - self.multi = False self.index = {} @property @@ -725,11 +724,12 @@ class _WireReader: question_only: Are we only reading the question? one_rr_per_rrset: Put each RR into its own RRset? ignore_trailing: Ignore trailing junk at end of request? + multi: Is this message part of a multi-message sequence? DNS dynamic updates. """ def __init__(self, wire, initialize_message, question_only=False, - one_rr_per_rrset=False, ignore_trailing=False): + one_rr_per_rrset=False, ignore_trailing=False, multi=False): self.wire = dns.wiredata.maybe_wrap(wire) self.message = None self.current = 0 @@ -737,6 +737,7 @@ class _WireReader: self.question_only = question_only self.one_rr_per_rrset = one_rr_per_rrset self.ignore_trailing = ignore_trailing + self.multi = multi def _get_question(self, section_number, qcount): """Read the next *qcount* records from the wire data and add them to @@ -818,7 +819,7 @@ class _WireReader: self.message.request_mac, rr_start, self.message.tsig_ctx, - self.message.multi) + self.multi) self.message.tsig = dns.rrset.from_rdata(absolute_name, 0, rd) else: rrset = self.message.find_rrset(section, name, @@ -855,8 +856,7 @@ class _WireReader: self._get_section(MessageSection.ADDITIONAL, adcount) if not self.ignore_trailing and self.current != l: raise TrailingJunk - if self.message.multi and self.message.tsig_ctx and \ - not self.message.had_tsig: + if self.multi and self.message.tsig_ctx and not self.message.had_tsig: self.message.tsig_ctx.update(self.wire) return self.message @@ -923,10 +923,9 @@ def from_wire(wire, keyring=None, request_mac=b'', xfr=False, origin=None, message.xfr = xfr message.origin = origin message.tsig_ctx = tsig_ctx - message.multi = multi reader = _WireReader(wire, initialize_message, question_only, - one_rr_per_rrset, ignore_trailing) + one_rr_per_rrset, ignore_trailing, multi) try: m = reader.read() except dns.exception.FormError: diff --git a/dns/message.pyi b/dns/message.pyi index 8b83a788..6cf12d30 100644 --- a/dns/message.pyi +++ b/dns/message.pyi @@ -34,7 +34,6 @@ class Message: self.origin = None self.tsig_ctx = None self.had_tsig = False - self.multi = False self.index : Dict[Tuple[rrset.RRset, name.Name, int, int, Union[int,str], int], rrset.RRset] = {} def is_response(self, other : Message) -> bool: -- 2.47.3