|
@ -267,10 +267,7 @@ def alabel(label): |
|
|
|
|
|
|
|
|
try: |
|
|
try: |
|
|
label = label.encode('ascii') |
|
|
label = label.encode('ascii') |
|
|
try: |
|
|
ulabel(label) |
|
|
ulabel(label) |
|
|
|
|
|
except IDNAError: |
|
|
|
|
|
raise IDNAError('The label {0} is not a valid A-label'.format(label)) |
|
|
|
|
|
if not valid_label_length(label): |
|
|
if not valid_label_length(label): |
|
|
raise IDNAError('Label too long') |
|
|
raise IDNAError('Label too long') |
|
|
return label |
|
|
return label |
|
@ -303,6 +300,8 @@ def ulabel(label): |
|
|
label = label.lower() |
|
|
label = label.lower() |
|
|
if label.startswith(_alabel_prefix): |
|
|
if label.startswith(_alabel_prefix): |
|
|
label = label[len(_alabel_prefix):] |
|
|
label = label[len(_alabel_prefix):] |
|
|
|
|
|
if label.decode('ascii')[-1] == '-': |
|
|
|
|
|
raise IDNAError('A-label must not end with a hyphen') |
|
|
else: |
|
|
else: |
|
|
check_label(label) |
|
|
check_label(label) |
|
|
return label.decode('ascii') |
|
|
return label.decode('ascii') |
|
|