Compare commits

..

1 Commits

Author SHA1 Message Date
jeltz 220f268fef
Convert some 'str' arguments to 'dns.name.Name'
It seems to be required by dnspython.
2 years ago

@ -1,6 +1,8 @@
#!/usr/bin/env python3
from dns import name, rdata, rdataclass, rdatatype
import dns
from dns import rdata, rdataclass, rdatatype
from dns.zone import Zone
from dns.rdtypes.ANY import CNAME, MX, NS, SOA, TXT
from dns.rdtypes.IN import A, AAAA
@ -13,7 +15,7 @@ SOA_EXPIRE_TIME = 3600000
SOA_TIME_TO_LIVE = 10800
def format_rname(mail: str) -> name.Name:
def format_rname(mail: str) -> dns.name.Name:
"""
Given an email address in the standard string format `mail@example.tld`
return an email address in the format required by RFC 1035
@ -27,7 +29,7 @@ def format_rname(mail: str) -> name.Name:
"""
local, domain = mail.split("@")
rname = name.Name((local, *name.from_text(domain)))
rname = dns.name.Name((local, *dns.name.from_text(domain)))
return rname
@ -52,17 +54,25 @@ class IPv6Record(Record):
class CanonicalNameRecord(Record):
def __init__(self, name: str, address: str):
super().__init__(name, CNAME.CNAME(rdataclass.IN, rdatatype.CNAME, address))
super().__init__(
name,
CNAME.CNAME(rdataclass.IN, rdatatype.CNAME, dns.name.from_text(address)),
)
class MailExchangeRecord(Record):
def __init__(self, name: str, priority: int, exchange: str):
super().__init__(name, MX.MX(rdataclass.IN, rdatatype.MX, priority, exchange))
super().__init__(
name,
MX.MX(rdataclass.IN, rdatatype.MX, priority, dns.name.from_text(exchange)),
)
class NameServerRecord(Record):
def __init__(self, name: str, address: str):
super().__init__(name, NS.NS(rdataclass.IN, rdatatype.NS, address))
super().__init__(
name, NS.NS(rdataclass.IN, rdatatype.NS, dns.name.from_text(address))
)
class TextRecord(Record):
@ -87,7 +97,7 @@ class StartOfAuthorityRecord(Record):
SOA.SOA(
rdataclass.IN,
rdatatype.SOA,
address,
dns.name.from_text(address),
format_rname(rname),
serial,
refresh,

Loading…
Cancel
Save