Skip to content

Commit fb0c898

Browse files
authored
2568 [Bug] 1.6 Beta Unable to use IDN domains (hestiacp#2578)
* Replace idn with idn2 * Check if install was success full * Fix issue with not correctly converting v-add-web-domain / v-add-mail-domain * Do not convert on default v-add-dns-record
1 parent 55b2f81 commit fb0c898

15 files changed

+30
-24
lines changed

bin/v-add-dns-domain

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ source_conf "$HESTIA/conf/hestia.conf"
4141
# Additional argument formatting
4242
format_domain
4343
format_domain_idn
44-
domain_utf=$(idn -t --quiet -u "$domain_idn")
44+
domain_utf=$(idn2 --quiet "$domain_idn")
4545

4646
#----------------------------------------------------------#
4747
# Verifications #

bin/v-add-dns-record

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
user=$1
1818
domain=$2
1919
domain_idn=$2
20-
record=$(idn -t --quiet -u "$3" )
20+
record=$(idn2 --quiet "$3" )
2121
record=$(echo "$record" | tr '[:upper:]' '[:lower:]')
2222
rtype=$(echo "$4"| tr '[:lower:]' '[:upper:]')
23-
dvalue=$(idn -t --quiet -u "$5" )
23+
dvalue=$5
2424
priority=$6
2525
id=$7
2626
restart=$8

bin/v-add-letsencrypt-domain

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ echo -e "
184184
if [ "$proto" = "http-01" ]; then
185185
for identifier in $(echo $domain,$aliases |tr ',' '\n' |sort -u); do
186186
if [[ "$identifier" = *[![:ascii:]]* ]]; then
187-
identifier=$(idn -t --quiet -a $identifier)
187+
identifier=$(idn2 --quiet $identifier)
188188
fi
189189
if ! nslookup "${identifier}" > /dev/null 2>&1 ; then
190190
check_result "$E_NOTEXIST" "DNS record for $identifier doesn't exist"

bin/v-add-mail-domain

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ fi
4343
# Additional argument formatting
4444
format_domain
4545
format_domain_idn
46-
domain_utf=$(idn -t --quiet -u "$domain_idn")
46+
domain_utf=$(idn2 --quiet -d "$domain_idn")
4747

4848
#----------------------------------------------------------#
4949
# Verifications #

bin/v-add-mail-domain-ssl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ if [[ "$domain" =~ .*\.$ ]]; then
2828
domain=$(echo "$domain" |sed -e "s/\.$//")
2929
fi
3030

31-
domain_idn=$(idn -t --quiet -a "$domain")
31+
domain_idn=$(idn2 --quiet "$domain")
3232

3333
# Includes
3434
# shellcheck source=/etc/hestiacp/hestia.conf

bin/v-add-web-domain

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ source_conf "$HESTIA/conf/hestia.conf"
4242
format_domain
4343
format_domain_idn
4444
format_aliases
45-
domain_utf=$(idn -t --quiet -u "$domain_idn")
45+
domain_utf=$(idn2 --quiet -d "$domain_idn")
4646

4747
#----------------------------------------------------------#
4848
# Verifications #

bin/v-delete-dns-on-web-alias

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ user=$1
1515
domain=$2
1616
alias=$3
1717
domain_idn=$2
18-
dom_alias=$(idn -t --quiet -u "$3" )
18+
dom_alias=$(idn2 --quiet -d "$3" )
1919
dom_alias=$(echo $dom_alias |sed -e 's/\.*$//g' -e 's/^\.*//g')
2020
dom_alias=$(echo $dom_alias |tr '[:upper:]' '[:lower:]')
21-
dom_alias_idn=$(idn -t --quiet -a "$dom_alias" )
21+
dom_alias_idn=$(idn2 --quiet "$dom_alias" )
2222
restart="$4"
2323

2424
# Includes

func/domain.sh

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ prepare_web_aliases() {
142142
for tmp_alias in ${1//,/ }; do
143143
tmp_alias_idn="$tmp_alias"
144144
if [[ "$tmp_alias" = *[![:ascii:]]* ]]; then
145-
tmp_alias_idn=$(idn -t --quiet -a $tmp_alias)
145+
tmp_alias_idn=$(idn2 --quiet $tmp_alias)
146146
fi
147147
if [[ $i -eq 1 ]]; then
148148
aliases="$tmp_alias"
@@ -165,7 +165,7 @@ prepare_web_aliases() {
165165
# Update web domain values
166166
prepare_web_domain_values() {
167167
if [[ "$domain" = *[![:ascii:]]* ]]; then
168-
domain_idn=$(idn -t --quiet -a $domain)
168+
domain_idn=$(idn2 --quiet $domain)
169169
else
170170
domain_idn=$domain
171171
fi
@@ -479,12 +479,12 @@ update_domain_zone() {
479479
domain_param=$(grep "DOMAIN='$domain'" $USER_DATA/dns.conf)
480480
parse_object_kv_list "$domain_param"
481481
local zone_ttl="$TTL"
482-
SOA=$(idn --quiet -a -t "$SOA")
482+
SOA=$(idn2 --quiet "$SOA")
483483
if [ -z "$SERIAL" ]; then
484484
SERIAL=$(date +'%Y%m%d01')
485485
fi
486486
if [[ "$domain" = *[![:ascii:]]* ]]; then
487-
domain_idn=$(idn -t --quiet -a $domain)
487+
domain_idn=$(idn2 --quiet $domain)
488488
else
489489
domain_idn=$domain
490490
fi
@@ -508,9 +508,9 @@ update_domain_zone() {
508508
# inherit zone TTL if record lacks explicit TTL value
509509
[ -z "$TTL" ] && TTL="$zone_ttl"
510510

511-
RECORD=$(idn --quiet -a -t "$RECORD")
511+
RECORD=$(idn2 --quiet "$RECORD")
512512
if [ "$TYPE" = 'CNAME' ] || [ "$TYPE" = 'MX' ]; then
513-
VALUE=$(idn --quiet -a -t "$VALUE")
513+
VALUE=$(idn2 --quiet "$VALUE")
514514
fi
515515

516516
if [ "$TYPE" = 'TXT' ]; then
@@ -940,7 +940,7 @@ is_valid_extension() {
940940
chmod 750 $HESTIA/data/extensions/
941941
/usr/bin/wget --tries=3 --timeout=15 --read-timeout=15 --waitretry=3 --no-dns-cache --quiet -O $HESTIA/data/extensions/public_suffix_list.dat https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat
942942
fi
943-
test_domain=$(idn -t --quiet -u "$1" )
943+
test_domain=$(idn2 -d "$1" )
944944
extension=$( /bin/echo "${test_domain}" | /usr/bin/rev | /usr/bin/cut -d "." --output-delimiter="." -f 1 | /usr/bin/rev );
945945
exten=$(grep "^$extension\$" $HESTIA/data/extensions/public_suffix_list.dat);
946946
}
@@ -951,7 +951,7 @@ is_valid_2_part_extension() {
951951
chmod 750 $HESTIA/data/extensions/
952952
/usr/bin/wget --tries=3 --timeout=15 --read-timeout=15 --waitretry=3 --no-dns-cache --quiet -O $HESTIA/data/extensions/public_suffix_list.dat https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat
953953
fi
954-
test_domain=$(idn -t --quiet -u "$1" )
954+
test_domain=$(idn2 -d "$1" )
955955
extension=$( /bin/echo "${test_domain}" | /usr/bin/rev | /usr/bin/cut -d "." --output-delimiter="." -f 1-2 | /usr/bin/rev );
956956
exten=$(grep "^$extension\$" $HESTIA/data/extensions/public_suffix_list.dat);
957957
}

func/main.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1359,7 +1359,7 @@ format_domain_idn() {
13591359
domain_idn=$domain
13601360
fi
13611361
if [[ "$domain_idn" = *[![:ascii:]]* ]]; then
1362-
domain_idn=$(idn -t --quiet -a $domain_idn)
1362+
domain_idn=$(idn2 --quiet $domain_idn)
13631363
fi
13641364
}
13651365

func/rebuild.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -465,7 +465,7 @@ rebuild_dns_domain_conf() {
465465

466466
# Get domain values
467467
get_domain_values 'dns'
468-
domain_idn=$(idn -t --quiet -a "$domain")
468+
domain_idn=$(idn2 --quiet "$domain")
469469

470470
# Checking zone file
471471
if [ ! -e "$USER_DATA/dns/$domain.conf" ]; then
@@ -533,7 +533,7 @@ rebuild_mail_domain_conf() {
533533

534534
get_domain_values 'mail'
535535
if [[ "$domain" = *[![:ascii:]]* ]]; then
536-
domain_idn=$(idn -t --quiet -a $domain)
536+
domain_idn=$(idn2 --quiet $domain)
537537
else
538538
domain_idn=$domain
539539
fi

0 commit comments

Comments
 (0)