We don't want these to hit the database in Unicode, but only in ASCII
format.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
import enum
import gzip
import httpx
+import idna
import io
import itertools
import logging
# Remove any trailing dots
domain = domain.removesuffix(".")
+ # Normalize any international domain names
+ try:
+ domain = idna.encode(domain).decode("ascii")
+
+ except idna.IDNAError as e:
+ log.warning(_("Skipping invalid domain: %s") % domain)
+ continue
+
# Skip any invalid domain names
if not util.is_fqdn(domain):
# Silently skip any IP addresses