mirror of
https://github.com/cwinfo/powerdns-admin.git
synced 2024-11-09 15:10:27 +00:00
Merge pull request #1340 from pneb/patch-5
patch(lib/utils.py): Fixes pretty_domain_name issue
This commit is contained in:
commit
debeda5b74
@ -238,24 +238,22 @@ class customBoxes:
|
||||
}
|
||||
order = ["reverse", "ip6arpa", "inaddrarpa"]
|
||||
|
||||
def pretty_domain_name(value):
|
||||
"""
|
||||
Display domain name in original format.
|
||||
If it is IDN domain (Punycode starts with xn--), do the
|
||||
idna decoding.
|
||||
Note that any part of the domain name can be individually punycoded
|
||||
"""
|
||||
if isinstance(value, str):
|
||||
if value.startswith('xn--') \
|
||||
or value.find('.xn--') != -1:
|
||||
try:
|
||||
return to_idna(value, 'decode')
|
||||
except:
|
||||
raise Exception('Cannot decode IDN domain')
|
||||
else:
|
||||
return value
|
||||
else:
|
||||
raise Exception('Require the Punycode in string format')
|
||||
def pretty_domain_name(domain_name):
|
||||
# Add a debugging statement to print out the domain name
|
||||
print("Received domain name:", domain_name)
|
||||
|
||||
# Check if the domain name is encoded using Punycode
|
||||
if domain_name.endswith('.xn--'):
|
||||
try:
|
||||
# Decode the domain name using the idna library
|
||||
domain_name = idna.decode(domain_name)
|
||||
except Exception as e:
|
||||
# If the decoding fails, raise an exception with more information
|
||||
raise Exception('Cannot decode IDN domain: {}'.format(e))
|
||||
|
||||
# Return the "pretty" version of the domain name
|
||||
return domain_name
|
||||
|
||||
|
||||
def to_idna(value, action):
|
||||
splits = value.split('.')
|
||||
|
Loading…
Reference in New Issue
Block a user