From: Bob Halley Date: Fri, 1 May 2020 22:58:14 +0000 (-0700) Subject: Add as_name(), allowing an already read token to be interpreted a name. X-Git-Tag: v2.0.0rc1~282 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e2aee800e713d4c7228da2237f4a4ca8c9df2af1;p=thirdparty%2Fdnspython.git Add as_name(), allowing an already read token to be interpreted a name. --- diff --git a/dns/tokenizer.py b/dns/tokenizer.py index 66714b7f..4232b3f2 100644 --- a/dns/tokenizer.py +++ b/dns/tokenizer.py @@ -528,20 +528,29 @@ class Tokenizer(object): raise dns.exception.SyntaxError('expecting an identifier') return token.value - def get_name(self, origin=None, relativize=False, relativize_to=None): - """Read the next token and interpret it as a DNS name. + def as_name(self, token, origin=None, relativize=False, relativize_to=None): + """Try to interpret the token as a DNS name. Raises dns.exception.SyntaxError if not a name. Returns a dns.name.Name. """ - - token = self.get() if not token.is_identifier(): raise dns.exception.SyntaxError('expecting an identifier') name = dns.name.from_text(token.value, origin) return name.choose_relativity(relativize_to or origin, relativize) + def get_name(self, origin=None, relativize=False, relativize_to=None): + """Read the next token and interpret it as a DNS name. + + Raises dns.exception.SyntaxError if not a name. + + Returns a dns.name.Name. + """ + + token = self.get() + return self.as_name(token, origin, relativize, relativize_to) + def get_eol(self): """Read the next token and raise an exception if it isn't EOL or EOF.