Skip to content

Compatibility with dnspython 2.0

I got a report this script won't work with dnspython 2.0 and so, with Debian Bullseye.

Some relevant parts of the logs received while trying with 2.0:

[...]
Configure DNS client tools.
acme_dns_tiny.py:112: DeprecationWarning: please use dns.resolver.resolve() instead
   in dns.resolver.query(config["DNS"]["Host"], rdtype="A")]
acme_dns_tiny.py:114: DeprecationWarning: please use dns.resolver.resolve() instead
   in dns.resolver.query(config["DNS"]["Host"], rdtype="AAAA")]
[...]
Install DNS TXT resource for domain: example.com
acme_dns_tiny.py:222: DeprecationWarning: please use dns.resolver.Resolver.resolve() instead
   in resolver.query(dnsrr_domain, rdtype="CNAME")][0]
Traceback (most recent call last):
   File "python3.8/site-packages/dns/inet.py", line 87, in af_for_address
     dns.ipv4.inet_aton(text)
   File "python3.8/site-packages/dns/ipv4.py", line 49, in inet_aton
     raise dns.exception.SyntaxError
dns.exception.SyntaxError: Text input is malformed.

requests
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
   File "python3.8/site-packages/dns/inet.py", line 91, in af_for_address
     dns.ipv6.inet_aton(text, True)
   File "python3.8/site-packages/dns/ipv6.py", line 165, in inet_aton
     raise dns.exception.SyntaxError
dns.exception.SyntaxError: Text input is malformed.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
   File "acme_dns_tiny.py", line 365, in <module>
     main(sys.argv[1:])
   File "acme_dns_tiny.py", line 360, in main
     signed_crt = get_crt(config, LOGGER)
   File "acme_dns_tiny.py", line 231, in get_crt
     _update_dns(dnsrr_set, "add")
   File "acme_dns_tiny.py", line 41, in _update_dns
     response = dns.query.tcp(dns_update, config["DNS"]["Host"],
   File "python3.8/site-packages/dns/query.py", line 752, in tcp
     (af, destination, source) = _destination_and_source(where, port,
   File "python3.8/site-packages/dns/query.py", line 226, in _destination_and_source
     af = dns.inet.af_for_address(where)
   File "python3.8/site-packages/dns/inet.py", line 94, in af_for_address
     raise ValueError
ValueError