From e5950d516d52fe4776c6527676d0823780a7f8d7 Mon Sep 17 00:00:00 2001
From: Serghey Rodin <skid@vestacp.com>
Date: Wed, 11 Jan 2017 16:52:11 +0200
Subject: [PATCH] Code refactoring: domain_idn + new restart routine

---
 bin/v-add-dns-domain                 | 39 ++++++++++++----------------
 bin/v-add-dns-record                 | 15 +++++------
 bin/v-add-domain                     | 18 ++++++-------
 bin/v-add-mail-account               | 11 +++++---
 bin/v-add-mail-account-alias         |  8 +++---
 bin/v-add-mail-account-autoreply     |  8 +++---
 bin/v-add-mail-account-forward       |  8 +++---
 bin/v-add-mail-account-fwd-only      |  8 +++---
 bin/v-add-mail-domain                | 14 ++++------
 bin/v-add-mail-domain-antispam       |  8 +++---
 bin/v-add-mail-domain-antivirus      |  8 +++---
 bin/v-add-mail-domain-catchall       |  8 +++---
 bin/v-add-mail-domain-dkim           |  8 +++---
 bin/v-add-web-domain                 | 32 ++++++-----------------
 bin/v-add-web-domain-alias           | 36 ++++++++++++-------------
 bin/v-add-web-domain-backend         |  6 ++---
 bin/v-add-web-domain-ftp             |  7 +++--
 bin/v-add-web-domain-proxy           |  6 ++---
 bin/v-add-web-domain-ssl             | 19 +++++++-------
 bin/v-add-web-domain-stats           |  7 +++--
 bin/v-backup-user                    |  4 +--
 bin/v-change-dns-domain-exp          |  7 +++--
 bin/v-change-dns-domain-ip           | 13 +++++-----
 bin/v-change-dns-domain-soa          | 13 +++++-----
 bin/v-change-dns-domain-tpl          | 17 +++++-------
 bin/v-change-dns-domain-ttl          | 13 +++++-----
 bin/v-change-dns-record              | 17 +++++-------
 bin/v-change-dns-record-id           | 14 +++++-----
 bin/v-change-mail-account-password   |  8 +++---
 bin/v-change-mail-account-quota      |  8 +++---
 bin/v-change-mail-domain-catchall    | 11 ++++----
 bin/v-change-sys-ip-nat              |  6 ++---
 bin/v-change-web-domain-backend-tpl  | 20 +++++++-------
 bin/v-change-web-domain-ftp-password |  7 +++--
 bin/v-change-web-domain-ftp-path     |  7 +++--
 bin/v-change-web-domain-ip           | 22 ++++++----------
 bin/v-change-web-domain-name         |  9 +++----
 bin/v-change-web-domain-proxy-tpl    | 14 +++++-----
 bin/v-change-web-domain-sslcert      | 19 +++++++-------
 bin/v-change-web-domain-sslhome      | 19 +++++++-------
 bin/v-change-web-domain-stats        |  7 +++--
 bin/v-change-web-domain-tpl          | 13 +++++-----
 bin/v-delete-dns-domain              |  6 ++---
 bin/v-delete-dns-domains             |  6 ++---
 bin/v-delete-dns-domains-src         |  6 ++---
 bin/v-delete-dns-on-web-alias        | 13 ++++++----
 bin/v-delete-dns-record              | 13 +++++-----
 bin/v-delete-domain                  | 18 ++++++-------
 bin/v-delete-mail-account            |  8 +++---
 bin/v-delete-mail-account-alias      |  8 +++---
 bin/v-delete-mail-account-autoreply  |  8 +++---
 bin/v-delete-mail-account-forward    | 12 ++++-----
 bin/v-delete-mail-account-fwd-only   |  8 +++---
 bin/v-delete-mail-domain             |  7 +++--
 bin/v-delete-mail-domain-antispam    |  8 +++---
 bin/v-delete-mail-domain-antivirus   |  8 +++---
 bin/v-delete-mail-domain-catchall    |  8 +++---
 bin/v-delete-web-domain              | 22 +++++++---------
 bin/v-delete-web-domain-alias        | 12 +++------
 bin/v-delete-web-domain-backend      | 13 +++++-----
 bin/v-delete-web-domain-ftp          |  7 +++--
 bin/v-delete-web-domain-proxy        | 13 +++++-----
 bin/v-delete-web-domain-ssl          | 19 +++++++-------
 bin/v-delete-web-domain-stats        |  7 +++--
 bin/v-delete-web-domains             | 12 +++------
 bin/v-get-dns-domain-value           |  7 +++--
 bin/v-get-mail-account-value         |  7 +++--
 bin/v-get-mail-domain-value          |  7 +++--
 bin/v-insert-dns-domain              |  6 ++---
 bin/v-insert-dns-record              |  6 ++---
 bin/v-insert-dns-records             |  6 ++---
 bin/v-rebuild-cron-jobs              |  6 ++---
 bin/v-rebuild-dns-domain             |  6 ++---
 bin/v-rebuild-dns-domains            |  6 ++---
 bin/v-rebuild-web-domains            | 12 +++------
 bin/v-suspend-cron-job               |  6 ++---
 bin/v-suspend-cron-jobs              |  6 ++---
 bin/v-suspend-dns-domain             |  7 +++--
 bin/v-suspend-dns-record             | 13 +++++-----
 bin/v-suspend-domain                 | 18 ++++++-------
 bin/v-suspend-mail-account           |  8 +++---
 bin/v-suspend-mail-accounts          |  7 ++---
 bin/v-suspend-mail-domain            |  8 +++---
 bin/v-suspend-user                   | 14 +++++-----
 bin/v-suspend-web-domain             | 19 +++++++-------
 bin/v-suspend-web-domains            | 12 +++------
 bin/v-unsuspend-cron-job             |  6 ++---
 bin/v-unsuspend-cron-jobs            |  6 ++---
 bin/v-unsuspend-dns-domain           |  8 +++---
 bin/v-unsuspend-dns-record           | 11 ++++----
 bin/v-unsuspend-domain               | 18 ++++++-------
 bin/v-unsuspend-mail-account         |  8 +++---
 bin/v-unsuspend-mail-accounts        |  8 +++---
 bin/v-unsuspend-mail-domain          |  8 +++---
 bin/v-unsuspend-user                 | 14 +++++-----
 bin/v-unsuspend-web-domain           | 21 +++++++--------
 bin/v-unsuspend-web-domains          | 12 +++------
 bin/v-update-mail-domain-disk        |  8 +++---
 bin/v-update-web-domain-disk         |  7 +++--
 bin/v-update-web-domain-ssl          | 21 +++++++--------
 bin/v-update-web-domain-stat         |  7 +++--
 bin/v-update-web-domain-traff        |  7 +++--
 bin/v-update-web-templates           | 18 +++++--------
 func/main.sh                         | 34 ++++++++++++++++++++++++
 104 files changed, 605 insertions(+), 588 deletions(-)

diff --git a/bin/v-add-dns-domain b/bin/v-add-dns-domain
index 09d5b571..f43891a6 100755
--- a/bin/v-add-dns-domain
+++ b/bin/v-add-dns-domain
@@ -15,15 +15,8 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | sed -e 's/\.*$//g' -e 's/^\.*//g')
-if [[ "$domain" =~ [[:upper:]] ]]; then
-    domain=$(echo "$domain" |tr '[:upper:]' '[:lower:]')
-fi
-domain_idn="$domain"
-if [[ "$domain" = *[![:ascii:]]* ]]; then
-    domain_idn=$(idn -t --quiet -a $domain)
-fi
+domain=$2
+domain_idn=$2
 ip=$3
 ns1=$4
 ns2=$5
@@ -40,6 +33,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -56,37 +53,35 @@ template=$(get_user_value '$DNS_TEMPLATE')
 is_dns_template_valid $template
 
 if [ ! -z "$ns1" ]; then
-    ns1=$(echo $4 | sed -e 's/\.*$//g' -e 's/^\.*//g')
+    ns1=$(echo $4 |sed -e 's/\.*$//g' -e 's/^\.*//g')
     is_format_valid 'ns1'
 fi
 if [ ! -z "$ns2" ]; then
-    ns2=$(echo $5 | sed -e 's/\.*$//g' -e 's/^\.*//g')
+    ns2=$(echo $5 |sed -e 's/\.*$//g' -e 's/^\.*//g')
     is_format_valid 'ns2'
 fi
-
 if [ ! -z "$ns3" ]; then
-    ns3=$(echo $6 | sed -e 's/\.*$//g' -e 's/^\.*//g')
+    ns3=$(echo $6 |sed -e 's/\.*$//g' -e 's/^\.*//g')
     is_format_valid 'ns3'
 fi
 if [ ! -z "$ns4" ]; then
-    ns4=$(echo $7 | sed -e 's/\.*$//g' -e 's/^\.*//g')
+    ns4=$(echo $7 |sed -e 's/\.*$//g' -e 's/^\.*//g')
     is_format_valid 'ns4'
 fi
 if [ ! -z "$ns5" ]; then
-    ns5=$(echo $8 | sed -e 's/\.*$//g' -e 's/^\.*//g')
+    ns5=$(echo $8 |sed -e 's/\.*$//g' -e 's/^\.*//g')
     is_format_valid 'ns5'
 fi
 if [ ! -z "$ns6" ]; then
-    ns6=$(echo $9 | sed -e 's/\.*$//g' -e 's/^\.*//g')
+    ns6=$(echo $9 |sed -e 's/\.*$//g' -e 's/^\.*//g')
     is_format_valid 'ns6'
 fi
 if [ ! -z "$ns7" ]; then
-    ns7=$(echo ${10} | sed -e 's/\.*$//g' -e 's/^\.*//g')
+    ns7=$(echo ${10} |sed -e 's/\.*$//g' -e 's/^\.*//g')
     is_format_valid 'ns7'
 fi
-
 if [ ! -z "$ns8" ]; then
-    ns8=$(echo ${11} | sed -e 's/\.*$//g' -e 's/^\.*//g')
+    ns8=$(echo ${11} |sed -e 's/\.*$//g' -e 's/^\.*//g')
     is_format_valid 'ns8'
 fi
 
@@ -203,10 +198,8 @@ increase_user_value "$user" '$U_DNS_DOMAINS'
 increase_user_value "$user" '$U_DNS_RECORDS' "$records"
 
 # Restart named
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-dns
-    check_result $? "DNS restart failed"
-fi
+$BIN/v-restart-dns $restart
+check_result $? "DNS restart failed"
 
 # Logging
 log_history "added dns domain $domain"
diff --git a/bin/v-add-dns-record b/bin/v-add-dns-record
index b785973c..3b6e6e95 100755
--- a/bin/v-add-dns-record
+++ b/bin/v-add-dns-record
@@ -26,11 +26,6 @@ if [ -z "$priority" ]; then
     priority=10
 fi
 
-domain_idn="$domain"
-if [[ "$domain" = *[![:ascii:]]* ]]; then
-    domain_idn=$(idn -t --quiet -a $domain)
-fi
-
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
@@ -55,6 +50,10 @@ if [[ "$dvalue" =~ [\;[:space:]] ]]; then
     dvalue='"'"$dvalue"'"'
 fi
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -121,10 +120,8 @@ update_object_value 'dns' 'DOMAIN' "$domain" '$RECORDS' "$records"
 increase_user_value "$user" '$U_DNS_RECORDS'
 
 # Restart named
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-dns
-    check_result $? $E_RESTART 'dns failed to restart'
-fi
+$BIN/v-restart-dns $restart
+check_result $? $E_RESTART 'dns failed to restart'
 
 # Logging
 log_history "added $rtype dns record $record for $domain"
diff --git a/bin/v-add-domain b/bin/v-add-domain
index 49b105be..e383481a 100755
--- a/bin/v-add-domain
+++ b/bin/v-add-domain
@@ -64,16 +64,14 @@ if [ ! -z "$MAIL_SYSTEM" ]; then
 fi
 
 # Restarting services
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "can't restart web" > /dev/null
-    if [ ! -z "$PROXY_SYSTEM" ]; then
-        $BIN/v-restart-proxy
-        check_result $? "can't restart proxy" > /dev/null
-    fi
-    $BIN/v-restart-dns
-    check_result $? "can't restart dns" > /dev/null
-fi
+$BIN/v-restart-web $restart
+check_result $? "can't restart web" > /dev/null
+
+$BIN/v-restart-proxy $restart
+check_result $? "can't restart proxy" > /dev/null
+
+$BIN/v-restart-dns $restart
+check_result $? "can't restart dns" > /dev/null
 
 
 #----------------------------------------------------------#
diff --git a/bin/v-add-mail-account b/bin/v-add-mail-account
index 586871a4..44925680 100755
--- a/bin/v-add-mail-account
+++ b/bin/v-add-mail-account
@@ -11,10 +11,8 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
-account=$(echo $3 | tr '[:upper:]' '[:lower:]')
+domain=$2
+account=$3
 password=$4; HIDE=4
 quota=${5-unlimited}
 
@@ -23,6 +21,11 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+if [[ "$account" =~ [[:upper:]] ]]; then
+    account=$(echo "$account" |tr '[:upper:]' '[:lower:]')
+fi
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-add-mail-account-alias b/bin/v-add-mail-account-alias
index 004e6e4d..03ecaec9 100755
--- a/bin/v-add-mail-account-alias
+++ b/bin/v-add-mail-account-alias
@@ -11,9 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 account=$3
 malias=$4
 
@@ -22,6 +20,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-add-mail-account-autoreply b/bin/v-add-mail-account-autoreply
index 88070f7c..f8c8f62b 100755
--- a/bin/v-add-mail-account-autoreply
+++ b/bin/v-add-mail-account-autoreply
@@ -11,9 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 account=$3
 autoreply=$4
 
@@ -29,6 +27,10 @@ else
     MAIL_USER=exim
 fi
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-add-mail-account-forward b/bin/v-add-mail-account-forward
index 1a990a31..6be94b22 100755
--- a/bin/v-add-mail-account-forward
+++ b/bin/v-add-mail-account-forward
@@ -11,9 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 account=$3
 forward=$4
 
@@ -22,6 +20,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-add-mail-account-fwd-only b/bin/v-add-mail-account-fwd-only
index 277776ba..02704cfb 100755
--- a/bin/v-add-mail-account-fwd-only
+++ b/bin/v-add-mail-account-fwd-only
@@ -11,9 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 account=$3
 
 # Includes
@@ -28,6 +26,10 @@ else
     MAIL_USER=exim
 fi
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-add-mail-domain b/bin/v-add-mail-domain
index 788445cd..f72cf750 100755
--- a/bin/v-add-mail-domain
+++ b/bin/v-add-mail-domain
@@ -11,15 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | sed -e 's/\.*$//g' -e 's/^\.*//g')
-if [[ "$domain" =~ [[:upper:]] ]]; then
-    domain=$(echo "$domain" |tr '[:upper:]' '[:lower:]')
-fi
-domain_idn="$domain"
-if [[ "$domain" = *[![:ascii:]]* ]]; then
-    domain_idn=$(idn -t --quiet -a $domain)
-fi
+domain=$2
 antispam=${3-yes}
 antivirus=${4-yes}
 dkim=${5-yes}
@@ -37,6 +29,10 @@ else
     MAIL_USER=exim
 fi
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-add-mail-domain-antispam b/bin/v-add-mail-domain-antispam
index 916f1540..4ca81f94 100755
--- a/bin/v-add-mail-domain-antispam
+++ b/bin/v-add-mail-domain-antispam
@@ -11,15 +11,17 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-add-mail-domain-antivirus b/bin/v-add-mail-domain-antivirus
index d18857cb..c0acd82d 100755
--- a/bin/v-add-mail-domain-antivirus
+++ b/bin/v-add-mail-domain-antivirus
@@ -11,15 +11,17 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-add-mail-domain-catchall b/bin/v-add-mail-domain-catchall
index 91dc0354..f827449f 100755
--- a/bin/v-add-mail-domain-catchall
+++ b/bin/v-add-mail-domain-catchall
@@ -11,9 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 email="$3"
 
 # Includes
@@ -21,6 +19,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-add-mail-domain-dkim b/bin/v-add-mail-domain-dkim
index 62e27616..01ebbc8a 100755
--- a/bin/v-add-mail-domain-dkim
+++ b/bin/v-add-mail-domain-dkim
@@ -11,9 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 dkim_size=${3-1024}
 
 # Includes
@@ -28,6 +26,10 @@ else
     MAIL_USER=exim
 fi
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-add-web-domain b/bin/v-add-web-domain
index 6313674f..62619a42 100755
--- a/bin/v-add-web-domain
+++ b/bin/v-add-web-domain
@@ -18,37 +18,23 @@
 # Argument definition
 user=$1
 domain=$2
+domain_idn=$2
 ip=$3
 restart=$4      # will be moved to the end soon
 aliases=$5
 proxy_ext=$6
 
-# Additional argument formatting
-if [[ "$domain" =~ [[:upper:]] ]]; then
-    domain=$(echo "$domain" |tr '[:upper:]' '[:lower:]')
-fi
-if [[ "$domain" =~ ^www\..* ]]; then
-    domain=$(echo "$domain" |sed -e "s/^www.//")
-fi
-if [[ "$domain" =~ .*\.$ ]]; then
-    domain=$(echo "$domain" |sed -e "s/\.$//")
-fi
-domain_idn="$domain"
-if [[ "$domain" = *[![:ascii:]]* ]]; then
-    domain_idn=$(idn -t --quiet -a $domain)
-fi
-if [ ! -z "$aliases" ] && [ "$aliases" != 'none' ]; then
-    aliases=$(echo $aliases |tr '[:upper:]' '[:lower:]' |tr ',' '\n')
-    aliases=$(echo "$aliases" |sed -e "s/\.$//" |sort -u |grep -v www.$domain)
-    aliases=$(echo "$aliases" |sed -e "/^$/d" |tr '\n' ',' |sed -e "s/,$//")
-fi
-
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/func/ip.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+format_aliases
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -178,10 +164,8 @@ $BIN/v-restart-web $restart
 check_result $? "Web restart failed" >/dev/null
 
 # Restarting proxy server
-if [ ! -z "$PROXY_SYSTEM" ]; then
-    $BIN/v-restart-proxy $restart
-    check_result $? "Proxy restart failed" >/dev/null
-fi
+$BIN/v-restart-proxy $restart
+check_result $? "Proxy restart failed" >/dev/null
 
 # Logging
 log_history "added web domain $domain"
diff --git a/bin/v-add-web-domain-alias b/bin/v-add-web-domain-alias
index 59e077ca..932e1ffa 100755
--- a/bin/v-add-web-domain-alias
+++ b/bin/v-add-web-domain-alias
@@ -12,13 +12,8 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
-dom_alias=$(idn -t --quiet -u "$3" )
-dom_alias=$(echo $dom_alias | sed -e 's/\.*$//g' -e 's/^\.*//g')
-dom_alias=$(echo $dom_alias | tr '[:upper:]' '[:lower:]')
-dom_alias_idn=$(idn -t --quiet -a "$dom_alias" )
+domain=$2
+aliases=$3
 restart="$4"
 
 # Includes
@@ -27,6 +22,11 @@ source $VESTA/func/domain.sh
 source $VESTA/func/ip.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+format_aliases
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -39,7 +39,7 @@ is_object_valid 'user' 'USER' "$user"
 is_object_unsuspended 'user' 'USER' "$user"
 is_object_valid 'web' 'DOMAIN' "$domain"
 is_object_unsuspended 'web' 'DOMAIN' "$domain"
-is_domain_new 'web' "$dom_alias"
+is_domain_new 'web' "$aliases"
 is_package_full 'WEB_ALIASES'
 
 
@@ -53,9 +53,9 @@ get_domain_values 'web'
 # Preparing domain values for the template substitution
 local_ip=$(get_real_ip $IP)
 if [ -z "$ALIAS" ]; then
-    ALIAS="$dom_alias"
+    ALIAS="$aliases"
 else
-    ALIAS="$ALIAS,$dom_alias"
+    ALIAS="$ALIAS,$aliases"
 fi
 prepare_web_domain_values
 
@@ -87,17 +87,15 @@ update_object_value 'web' 'DOMAIN' "$domain" '$ALIAS' "$ALIAS"
 increase_user_value "$user" '$U_WEB_ALIASES'
 
 # Restarting web server
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "Web restart failed" >/dev/null
+$BIN/v-restart-web $restart
+check_result $? "Web restart failed" >/dev/null
 
-    if [ ! -z "$PROXY_SYSTEM" ]; then
-        $BIN/v-restart-proxy
-        check_result $? "Proxy restart failed" >/dev/null
-    fi
-fi
+# Restarting proxy server
+$BIN/v-restart-proxy $restart
+check_result $? "Proxy restart failed" >/dev/null
 
-log_history "added $dom_alias as alias for $domain"
+
+log_history "added $aliases for $domain"
 log_event "$OK" "$ARGUMENTS"
 
 exit
diff --git a/bin/v-add-web-domain-backend b/bin/v-add-web-domain-backend
index 301b10d6..1c415bb3 100755
--- a/bin/v-add-web-domain-backend
+++ b/bin/v-add-web-domain-backend
@@ -67,10 +67,8 @@ cat $WEBTPL/$WEB_BACKEND/$template.tpl |\
 #----------------------------------------------------------#
 
 # Restart backend server
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web-backend
-    check_result $? "Web backend restart failed" >/dev/null
-fi
+$BIN/v-restart-web-backend $restart
+check_result $? "Web backend restart failed" >/dev/null
 
 # Logging
 log_history "added $WEB_BACKEND backend configuration for $domain"
diff --git a/bin/v-add-web-domain-ftp b/bin/v-add-web-domain-ftp
index 67afc644..1c118706 100755
--- a/bin/v-add-web-domain-ftp
+++ b/bin/v-add-web-domain-ftp
@@ -11,8 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 ftp_user=${1}_${3}
 password=$4; HIDE=4
 ftp_path=$5
@@ -22,6 +21,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-add-web-domain-proxy b/bin/v-add-web-domain-proxy
index ff6a12fa..9bd42746 100755
--- a/bin/v-add-web-domain-proxy
+++ b/bin/v-add-web-domain-proxy
@@ -72,10 +72,8 @@ update_object_value 'web' 'DOMAIN' "$domain" '$PROXY' "$template"
 update_object_value 'web' 'DOMAIN' "$domain" '$PROXY_EXT' "$extentions"
 
 # Restarting web server
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-proxy
-    check_result $? "Proxy restart failed" >/dev/null
-fi
+$BIN/v-restart-proxy $restart
+check_result $? "Proxy restart failed" >/dev/null
 
 log_history "enabled proxy support for $domain"
 log_event "$OK" "$ARGUMENTS"
diff --git a/bin/v-add-web-domain-ssl b/bin/v-add-web-domain-ssl
index fa8de5c6..e4d249b6 100755
--- a/bin/v-add-web-domain-ssl
+++ b/bin/v-add-web-domain-ssl
@@ -16,8 +16,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 ssl_dir=$3
 ssl_home=${4-same}
 restart="$5"
@@ -28,6 +27,10 @@ source $VESTA/func/domain.sh
 source $VESTA/func/ip.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -97,15 +100,11 @@ update_object_value 'web' 'DOMAIN' "$domain" '$SSL_HOME' "$SSL_HOME"
 update_object_value 'web' 'DOMAIN' "$domain" '$SSL' "yes"
 
 # Restarting web server
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "Web restart failed" >/dev/null
+$BIN/v-restart-web $restart
+check_result $? "Web restart failed" >/dev/null
 
-    if [ ! -z "$PROXY_SYSTEM" ]; then
-        $BIN/v-restart-proxy
-        check_result $? "Proxy restart failed" >/dev/null
-    fi
-fi
+$BIN/v-restart-proxy $restart
+check_result $? "Proxy restart failed" >/dev/null
 
 # Logging
 log_history "enabled ssl support for $domain"
diff --git a/bin/v-add-web-domain-stats b/bin/v-add-web-domain-stats
index deec1646..60caf0c1 100755
--- a/bin/v-add-web-domain-stats
+++ b/bin/v-add-web-domain-stats
@@ -15,8 +15,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 type=$3
 
 # Includes
@@ -24,6 +23,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-backup-user b/bin/v-backup-user
index 98995e9f..786941a9 100755
--- a/bin/v-backup-user
+++ b/bin/v-backup-user
@@ -137,7 +137,7 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then
         mkdir -p $tmpdir/web/$domain/vesta
 
         # Get domain variables
-        domain_idn=$(idn -t --quiet -a "$domain")
+        format_domain_idn
         get_domain_values 'web'
 
         # Backup web.conf
@@ -286,7 +286,7 @@ if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL" != '*' ]; then
         echo -e "$(date "+%F %T") $domain" |tee -a $BACKUP/$user.log
         mkdir -p $tmpdir/mail/$domain/conf
         mkdir -p $tmpdir/mail/$domain/vesta
-        domain_idn=$(idn -t --quiet -a "$domain")
+        format_domain_idn
 
         # Backup exim config
         if [[ "$MAIL_SYSTEM" =~ exim ]]; then
diff --git a/bin/v-change-dns-domain-exp b/bin/v-change-dns-domain-exp
index ec11acc9..e5b0c6a9 100755
--- a/bin/v-change-dns-domain-exp
+++ b/bin/v-change-dns-domain-exp
@@ -12,14 +12,17 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 exp=$3
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-change-dns-domain-ip b/bin/v-change-dns-domain-ip
index 47e01f42..fca3ecb7 100755
--- a/bin/v-change-dns-domain-ip
+++ b/bin/v-change-dns-domain-ip
@@ -11,8 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 ip=$3
 restart=$4
 
@@ -21,6 +20,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -71,10 +74,8 @@ fi
 #----------------------------------------------------------#
 
 # Restarting named
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-dns
-    check_result $? "DNS restart failed" >/dev/null
-fi
+$BIN/v-restart-dns $restart
+check_result $? "DNS restart failed" >/dev/null
 
 # Logging
 log_history "changed dns ip for $domain to $ip"
diff --git a/bin/v-change-dns-domain-soa b/bin/v-change-dns-domain-soa
index 553bcfc9..e235a639 100755
--- a/bin/v-change-dns-domain-soa
+++ b/bin/v-change-dns-domain-soa
@@ -12,8 +12,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 soa=$(echo $3 | sed -e 's/\.*$//g' -e 's/^\.*//g')
 restart=$4
 
@@ -22,6 +21,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -65,10 +68,8 @@ fi
 #----------------------------------------------------------#
 
 # Restarting named
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-dns
-    check_result $? "DNS restart failed" >/dev/null
-fi
+$BIN/v-restart-dns $restart
+check_result $? "DNS restart failed" >/dev/null
 
 # Logging
 log_history "changed soa record for $domain to $soa"
diff --git a/bin/v-change-dns-domain-tpl b/bin/v-change-dns-domain-tpl
index 8af190f5..63c71e41 100755
--- a/bin/v-change-dns-domain-tpl
+++ b/bin/v-change-dns-domain-tpl
@@ -13,20 +13,19 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
+domain=$2
 template=$3
 restart=$4
 
-domain_idn="$domain"
-if [[ "$domain" = *[![:ascii:]]* ]]; then
-    domain_idn=$(idn -t --quiet -a $domain)
-fi
-
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -121,10 +120,8 @@ update_object_value 'dns' 'DOMAIN' "$domain" '$TPL' "$template"
 update_object_value 'dns' 'DOMAIN' "$domain" '$RECORDS' "$records"
 
 # Restarting named
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-dns
-    check_result $? "DNS restart failed" >/dev/null
-fi
+$BIN/v-restart-dns $restart
+check_result $? "DNS restart failed" >/dev/null
 
 # Logging
 log_history "changed dns template for $domain to $template" '' 'admin'
diff --git a/bin/v-change-dns-domain-ttl b/bin/v-change-dns-domain-ttl
index 0e85391f..131b7930 100755
--- a/bin/v-change-dns-domain-ttl
+++ b/bin/v-change-dns-domain-ttl
@@ -11,8 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 ttl=$3
 restart=$4
 
@@ -21,6 +20,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -64,10 +67,8 @@ fi
 #----------------------------------------------------------#
 
 # Restarting named
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-dns
-    check_result $? "DNS restart failed" >/dev/null
-fi
+$BIN/v-restart-dns $restart
+check_result $? "DNS restart failed" >/dev/null
 
 # Logging
 log_history "changed TTL for $domain to $ttl"
diff --git a/bin/v-change-dns-record b/bin/v-change-dns-record
index 505a8a1f..612ffc6c 100755
--- a/bin/v-change-dns-record
+++ b/bin/v-change-dns-record
@@ -11,22 +11,21 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
+domain=$2
 id=$3
 dvalue=$(idn -t --quiet -u "$4" )
 priority=$5
 restart=$6
 
-domain_idn="$domain"
-if [[ "$domain" = *[![:ascii:]]* ]]; then
-    domain_idn=$(idn -t --quiet -a $domain)
-fi
-
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -105,10 +104,8 @@ fi
 #----------------------------------------------------------#
 
 # Restarting named
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-dns
-    check_result $? "DNS restart failed" >/dev/null
-fi
+$BIN/v-restart-dns $restart
+check_result $? "DNS restart failed" >/dev/null
 
 # Logging
 log_history "changed dns record on $domain to $dvalue"
diff --git a/bin/v-change-dns-record-id b/bin/v-change-dns-record-id
index 4c321b0f..5dbcf299 100755
--- a/bin/v-change-dns-record-id
+++ b/bin/v-change-dns-record-id
@@ -11,9 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 id=$3
 newid=$4
 restart=$5
@@ -23,6 +21,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -71,10 +73,8 @@ fi
 #----------------------------------------------------------#
 
 # Restarting named
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-dns
-    check_result $? "DNS restart failed" >/dev/null
-fi
+$BIN/v-restart-dns $restart
+check_result $? "DNS restart failed" >/dev/null
 
 # Logging
 log_history "changed dns record id on $domain"
diff --git a/bin/v-change-mail-account-password b/bin/v-change-mail-account-password
index da6b788c..0540ac7b 100755
--- a/bin/v-change-mail-account-password
+++ b/bin/v-change-mail-account-password
@@ -11,9 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 account=$3
 password=$4; HIDE=4
 
@@ -22,6 +20,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-change-mail-account-quota b/bin/v-change-mail-account-quota
index 0d4f8d53..edbbabab 100755
--- a/bin/v-change-mail-account-quota
+++ b/bin/v-change-mail-account-quota
@@ -11,9 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 account=$3
 quota=$4
 
@@ -22,6 +20,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-change-mail-domain-catchall b/bin/v-change-mail-domain-catchall
index 25e0caaa..022dbf1d 100755
--- a/bin/v-change-mail-domain-catchall
+++ b/bin/v-change-mail-domain-catchall
@@ -11,16 +11,18 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
-email="$3"
+domain=$2
+email=$3
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -53,7 +55,6 @@ fi
 # Change catchall in config
 update_object_value 'mail' 'DOMAIN' "$domain" '$CATCHALL' "$email"
 
-
 # Logging
 log_history "changed catchall email for $domain to $email"
 log_event "$OK" "$ARGUMENTS"
diff --git a/bin/v-change-sys-ip-nat b/bin/v-change-sys-ip-nat
index 8f681555..58232212 100755
--- a/bin/v-change-sys-ip-nat
+++ b/bin/v-change-sys-ip-nat
@@ -73,10 +73,8 @@ fi
 #----------------------------------------------------------#
 
 # Restart ftp server
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-ftp
-    check_result $? "FTP restart failed" >/dev/null
-fi
+$BIN/v-restart-ftp $restart
+check_result $? "FTP restart failed" >/dev/null
 
 # Logging
 log_history "changed associated nat address on $ip to $nat_ip" '' 'admin'
diff --git a/bin/v-change-web-domain-backend-tpl b/bin/v-change-web-domain-backend-tpl
index 67044d6d..36a15000 100755
--- a/bin/v-change-web-domain-backend-tpl
+++ b/bin/v-change-web-domain-backend-tpl
@@ -11,11 +11,9 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 template=$3
-restart="$4"
-
+restart=$4
 
 # Includes
 source $VESTA/func/main.sh
@@ -23,6 +21,10 @@ source $VESTA/func/domain.sh
 source $VESTA/func/ip.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -143,13 +145,11 @@ fi
 
 
 # Restarting web
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "Web restart failed" >/dev/null
+$BIN/v-restart-web $restart
+check_result $? "Web restart failed" >/dev/null
 
-    $BIN/v-restart-web-backend
-    check_result $? "Web backend restart failed" >/dev/null
-fi
+$BIN/v-restart-web-backend $restart
+check_result $? "Web backend restart failed" >/dev/null
 
 # Logging
 log_history "changed backend template for $domain to $template"
diff --git a/bin/v-change-web-domain-ftp-password b/bin/v-change-web-domain-ftp-password
index 1eabe0ef..c41fdde7 100755
--- a/bin/v-change-web-domain-ftp-password
+++ b/bin/v-change-web-domain-ftp-password
@@ -11,8 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 ftp_user=$3
 password=$4; HIDE=4
 
@@ -21,6 +20,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-change-web-domain-ftp-path b/bin/v-change-web-domain-ftp-path
index 6ac0b7df..8cfefade 100755
--- a/bin/v-change-web-domain-ftp-path
+++ b/bin/v-change-web-domain-ftp-path
@@ -11,8 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 ftp_user=$3
 ftp_path=$4
 
@@ -21,6 +20,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-change-web-domain-ip b/bin/v-change-web-domain-ip
index b3e19432..05fde851 100755
--- a/bin/v-change-web-domain-ip
+++ b/bin/v-change-web-domain-ip
@@ -21,6 +21,10 @@ source $VESTA/func/domain.sh
 source $VESTA/func/ip.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -44,12 +48,6 @@ is_ip_valid "$ip" "$user"
 get_domain_values 'web'
 old=$(get_real_ip $IP)
 new=$ip
-if [[ "$domain" = *[![:ascii:]]* ]]; then
-    domain_idn=$(idn -t --quiet -a $domain)
-else
-    domain_idn=$domain
-fi
-
 
 # Replacing vhost
 replace_web_config "$WEB_SYSTEM" "$TPL.tpl"
@@ -78,15 +76,11 @@ decrease_ip_value "$old"
 update_object_value 'web' 'DOMAIN' "$domain" '$IP' "$3"
 
 # Restart web server
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "WEB restart failed" >/dev/null
+$BIN/v-restart-web $restart
+check_result $? "WEB restart failed" >/dev/null
 
-    if [ ! -z "$PROXY_SYSTEM" ]; then
-        $BIN/v-restart-proxy
-        check_result $? "Proxy restart failed" >/dev/null
-    fi
-fi
+$BIN/v-restart-proxy $restart
+check_result $? "Proxy restart failed" >/dev/null
 
 # Logging
 log_history "changed web domain $domain ip to $3"
diff --git a/bin/v-change-web-domain-name b/bin/v-change-web-domain-name
index 316c6a12..51215393 100755
--- a/bin/v-change-web-domain-name
+++ b/bin/v-change-web-domain-name
@@ -15,17 +15,16 @@ domain=$2
 new_domain=$3
 restart=$4
 
-domain_idn="$domain"
-if [[ "$domain" = *[![:ascii:]]* ]]; then
-    domain_idn=$(idn -t --quiet -a $domain)
-fi
-
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/func/ip.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-change-web-domain-proxy-tpl b/bin/v-change-web-domain-proxy-tpl
index cb51169b..c2be52f1 100755
--- a/bin/v-change-web-domain-proxy-tpl
+++ b/bin/v-change-web-domain-proxy-tpl
@@ -11,21 +11,23 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 template=$3
 default_extentions="jpg,jpeg,gif,png,ico,svg,css,zip,tgz,gz,rar,bz2,doc,xls,\
 exe,pdf,ppt,txt,odt,ods,odp,odf,tar,wav,bmp,rtf,js,mp3,avi,mpeg,flv,html,htm"
 extentions=${4-$default_extentions}
 restart="$5"
 
-
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/func/ip.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -75,10 +77,8 @@ update_object_value 'web' 'DOMAIN' "$domain" '$PROXY' "$PROXY"
 update_object_value 'web' 'DOMAIN' "$domain" '$PROXY_EXT' "$extentions"
 
 # Restarting proxy
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-proxy
-    check_result $? "Proxy restart failed" >/dev/null
-fi
+$BIN/v-restart-proxy $restart
+check_result $? "Proxy restart failed" >/dev/null
 
 # Logging
 log_history "changed proxy template for $domain to $template"
diff --git a/bin/v-change-web-domain-sslcert b/bin/v-change-web-domain-sslcert
index 67c1e0eb..444510c7 100755
--- a/bin/v-change-web-domain-sslcert
+++ b/bin/v-change-web-domain-sslcert
@@ -12,8 +12,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 ssl_dir=$3
 restart=$4
 
@@ -22,6 +21,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -71,15 +74,11 @@ fi
 #----------------------------------------------------------#
 
 # Restarting web server
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "Web restart failed" >/dev/null
+$BIN/v-restart-web $restart
+check_result $? "Web restart failed" >/dev/null
 
-    if [ ! -z "$PROXY_SYSTEM" ]; then
-        $BIN/v-restart-proxy
-        check_result $? "Proxy restart failed" >/dev/null
-    fi
-fi
+$BIN/v-restart-proxy $restart
+check_result $? "Proxy restart failed" >/dev/null
 
 # Logging
 log_history "changed ssl certificate for $domain"
diff --git a/bin/v-change-web-domain-sslhome b/bin/v-change-web-domain-sslhome
index c5764629..f9768e32 100755
--- a/bin/v-change-web-domain-sslhome
+++ b/bin/v-change-web-domain-sslhome
@@ -7,8 +7,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 ssl_home=$3
 restart=$4
 
@@ -17,6 +16,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -67,15 +70,11 @@ fi
 update_object_value 'web' 'DOMAIN' "$domain" '$SSL_HOME' "$SSL_HOME"
 
 # Restarting web server
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "Web restart failed" >/dev/null
+$BIN/v-restart-web $restart
+check_result $? "Web restart failed" >/dev/null
 
-    if [ ! -z "$PROXY_SYSTEM" ]; then
-        $BIN/v-restart-proxy
-        check_result $? "Proxy restart failed" >/dev/null
-    fi
-fi
+$BIN/v-restart-proxy $restart
+check_result $? "Proxy restart failed" >/dev/null
 
 # Logging
 log_history "changed ssl home for $domain to $ssl_home"
diff --git a/bin/v-change-web-domain-stats b/bin/v-change-web-domain-stats
index fcd661ff..afaa7fe7 100755
--- a/bin/v-change-web-domain-stats
+++ b/bin/v-change-web-domain-stats
@@ -12,8 +12,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 type=$3
 
 # Includes
@@ -21,6 +20,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-change-web-domain-tpl b/bin/v-change-web-domain-tpl
index 93635230..ef88e7a4 100755
--- a/bin/v-change-web-domain-tpl
+++ b/bin/v-change-web-domain-tpl
@@ -12,8 +12,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 template=$3
 restart=$4
 
@@ -23,6 +22,10 @@ source $VESTA/func/domain.sh
 source $VESTA/func/ip.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -68,10 +71,8 @@ fi
 update_object_value 'web' 'DOMAIN' "$domain" '$TPL' "$template"
 
 # Restarting web
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "Web restart failed" >/dev/null
-fi
+$BIN/v-restart-web $restart
+check_result $? "Web restart failed" >/dev/null
 
 # Logging
 log_history "changed web domain template for $domain to $template" '' 'admin'
diff --git a/bin/v-delete-dns-domain b/bin/v-delete-dns-domain
index 5281a10a..c82b0c00 100755
--- a/bin/v-delete-dns-domain
+++ b/bin/v-delete-dns-domain
@@ -72,10 +72,8 @@ decrease_user_value "$user" '$U_DNS_DOMAINS'
 decrease_user_value "$user" '$U_DNS_RECORDS' "$records"
 
 # Restarting named
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-dns $restart
-    check_result $? "Bind restart failed" >/dev/null
-fi
+$BIN/v-restart-dns $restart
+check_result $? "Bind restart failed" >/dev/null
 
 # Logging
 log_history "deleted dns domain $domain"
diff --git a/bin/v-delete-dns-domains b/bin/v-delete-dns-domains
index f74b4e14..a98b3140 100755
--- a/bin/v-delete-dns-domains
+++ b/bin/v-delete-dns-domains
@@ -43,10 +43,8 @@ done
 #----------------------------------------------------------#
 
 # Restarting named
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-dns
-    check_result $? "Bind restart failed" >/dev/null
-fi
+$BIN/v-restart-dns $restart
+check_result $? "Bind restart failed" >/dev/null
 
 # Logging
 log_event "$OK" "$ARGUMENTS"
diff --git a/bin/v-delete-dns-domains-src b/bin/v-delete-dns-domains-src
index 6f1958c6..85a6c147 100755
--- a/bin/v-delete-dns-domains-src
+++ b/bin/v-delete-dns-domains-src
@@ -44,10 +44,8 @@ done
 #----------------------------------------------------------#
 
 # Restart named
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-dns
-    check_result $? "Bind restart failed" >/dev/null
-fi
+$BIN/v-restart-dns $restart
+check_result $? "Bind restart failed" >/dev/null
 
 # Logging
 log_event "$OK" "$ARGUMENTS"
diff --git a/bin/v-delete-dns-on-web-alias b/bin/v-delete-dns-on-web-alias
index 74cc49f4..b74fc900 100755
--- a/bin/v-delete-dns-on-web-alias
+++ b/bin/v-delete-dns-on-web-alias
@@ -11,11 +11,10 @@
 
 # Argument definition
 user=$1
-domain=$(echo $2 | sed -e 's/\.*$//g' -e 's/^\.*//g')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 dom_alias=$(idn -t --quiet -u "$3" )
-dom_alias=$(echo $dom_alias | sed -e 's/\.*$//g' -e 's/^\.*//g')
-dom_alias=$(echo $dom_alias | tr '[:upper:]' '[:lower:]')
+dom_alias=$(echo $dom_alias |sed -e 's/\.*$//g' -e 's/^\.*//g')
+dom_alias=$(echo $dom_alias |tr '[:upper:]' '[:lower:]')
 dom_alias_idn=$(idn -t --quiet -a "$dom_alias" )
 restart="$4"
 
@@ -24,6 +23,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -63,7 +66,7 @@ else
         fi
         if [ ! -z "$rec" ]; then
             eval "$rec"
-            $BIN/v-delete-dns-record $user "$root" "$ID"
+            $BIN/v-delete-dns-record $user "$root" "$ID" $restart
         fi
     fi
 fi
diff --git a/bin/v-delete-dns-record b/bin/v-delete-dns-record
index 1c713d01..16bb2b46 100755
--- a/bin/v-delete-dns-record
+++ b/bin/v-delete-dns-record
@@ -11,8 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 id=$3
 restart=$4
 
@@ -21,6 +20,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -70,10 +73,8 @@ update_object_value 'dns' 'DOMAIN' "$domain" '$RECORDS' "$records"
 decrease_user_value "$user" '$U_DNS_RECORDS'
 
 # Restarting named
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-dns
-    check_result $? "Bind restart failed" >/dev/null
-fi
+$BIN/v-restart-dns $restart
+check_result $? "Bind restart failed" >/dev/null
 
 # Logging
 log_history "deleted dns record $id on $domain"
diff --git a/bin/v-delete-domain b/bin/v-delete-domain
index a315d3a8..b6294679 100755
--- a/bin/v-delete-domain
+++ b/bin/v-delete-domain
@@ -69,16 +69,14 @@ if [ -z "$domain_found" ]; then
 fi
 
 # Restarting services
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "can't restart web" > /dev/null
-    if [ ! -z "$PROXY_SYSTEM" ]; then
-        $BIN/v-restart-proxy
-        check_result $? "can't restart proxy" > /dev/null
-    fi
-    $BIN/v-restart-dns
-    check_result $? "can't restart dns" > /dev/null
-fi
+$BIN/v-restart-web $restart
+check_result $? "can't restart web" > /dev/null
+
+$BIN/v-restart-proxy $restart
+check_result $? "can't restart proxy" > /dev/null
+
+$BIN/v-restart-dns $restart
+check_result $? "can't restart dns" > /dev/null
 
 
 #----------------------------------------------------------#
diff --git a/bin/v-delete-mail-account b/bin/v-delete-mail-account
index a16829a6..ffc22114 100755
--- a/bin/v-delete-mail-account
+++ b/bin/v-delete-mail-account
@@ -11,9 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 account=$3
 
 # Includes
@@ -21,6 +19,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-delete-mail-account-alias b/bin/v-delete-mail-account-alias
index 470fa859..230d0113 100755
--- a/bin/v-delete-mail-account-alias
+++ b/bin/v-delete-mail-account-alias
@@ -11,9 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 account=$3
 malias=$4
 
@@ -22,6 +20,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-delete-mail-account-autoreply b/bin/v-delete-mail-account-autoreply
index 67e79d89..2169190a 100755
--- a/bin/v-delete-mail-account-autoreply
+++ b/bin/v-delete-mail-account-autoreply
@@ -11,9 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 account=$3
 malias=$4
 
@@ -22,6 +20,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-delete-mail-account-forward b/bin/v-delete-mail-account-forward
index ff289e35..c690e9a4 100755
--- a/bin/v-delete-mail-account-forward
+++ b/bin/v-delete-mail-account-forward
@@ -11,9 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 account=$3
 forward=$4
 
@@ -22,6 +20,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -38,9 +40,7 @@ is_object_valid "mail/$domain" 'ACCOUNT' "$account"
 is_object_unsuspended "mail/$domain" 'ACCOUNT' "$account"
 fwd=$(get_object_value "mail/$domain" 'ACCOUNT' "$account" '$FWD')
 if [ -z "$(echo $fwd | grep -w $forward)" ]; then
-    echo "Error: forward $forward doesn't exist"
-    log_event "$E_NOTEXIST $ARGUMENTS"
-    exit $E_NOTEXIST
+    check_result $E_NOTEXIST "forward $forward doesn't exist"
 fi
 
 
diff --git a/bin/v-delete-mail-account-fwd-only b/bin/v-delete-mail-account-fwd-only
index dbc9a727..f5147f9b 100755
--- a/bin/v-delete-mail-account-fwd-only
+++ b/bin/v-delete-mail-account-fwd-only
@@ -11,9 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 account=$3
 
 # Includes
@@ -21,6 +19,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-delete-mail-domain b/bin/v-delete-mail-domain
index 4833e656..f128d752 100755
--- a/bin/v-delete-mail-domain
+++ b/bin/v-delete-mail-domain
@@ -12,14 +12,17 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-delete-mail-domain-antispam b/bin/v-delete-mail-domain-antispam
index 8ba2cfd0..35568434 100755
--- a/bin/v-delete-mail-domain-antispam
+++ b/bin/v-delete-mail-domain-antispam
@@ -11,15 +11,17 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-delete-mail-domain-antivirus b/bin/v-delete-mail-domain-antivirus
index baea4575..e176a755 100755
--- a/bin/v-delete-mail-domain-antivirus
+++ b/bin/v-delete-mail-domain-antivirus
@@ -11,15 +11,17 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-delete-mail-domain-catchall b/bin/v-delete-mail-domain-catchall
index 549c5523..f5a7ddf8 100755
--- a/bin/v-delete-mail-domain-catchall
+++ b/bin/v-delete-mail-domain-catchall
@@ -11,15 +11,17 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-delete-web-domain b/bin/v-delete-web-domain
index 878ea472..6ef7280b 100755
--- a/bin/v-delete-web-domain
+++ b/bin/v-delete-web-domain
@@ -23,6 +23,10 @@ source $VESTA/func/domain.sh
 source $VESTA/func/ip.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -48,10 +52,6 @@ fi
 
 # Parsing domain values
 get_domain_values 'web'
-domain_idn="$domain"
-if [[ "$domain" = *[![:ascii:]]* ]]; then
-    domain_idn=$(idn -t --quiet -a $domain)
-fi
 local_ip=$(get_real_ip $IP)
 
 # Deleting domain from web.conf
@@ -121,16 +121,12 @@ if [ ! -z "$ALIAS" ]; then
 fi
 
 # Restarting web server
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "Web restart failed" >/dev/null
+$BIN/v-restart-web $restart
+check_result $? "Web restart failed" >/dev/null
 
-    # Restartinh proxy server
-    if [ ! -z "$PROXY_SYSTEM" ]; then
-        $BIN/v-restart-proxy
-        check_result $? "Proxy restart failed" >/dev/null
-    fi
-fi
+# Restartinh proxy server
+$BIN/v-restart-proxy $restart
+check_result $? "Proxy restart failed" >/dev/null
 
 # Logging
 log_history "deleted web domain $domain"
diff --git a/bin/v-delete-web-domain-alias b/bin/v-delete-web-domain-alias
index 2a218061..45bef00b 100755
--- a/bin/v-delete-web-domain-alias
+++ b/bin/v-delete-web-domain-alias
@@ -81,15 +81,11 @@ update_object_value 'web' 'DOMAIN' "$domain" '$ALIAS' "$ALIAS"
 decrease_user_value "$user" '$U_WEB_ALIASES'
 
 # Restarting web server
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "Web restart failed" >/dev/null
+$BIN/v-restart-web $restart
+check_result $? "Web restart failed" >/dev/null
 
-    if [ ! -z "$PROXY_SYSTEM" ]; then
-        $BIN/v-restart-proxy
-        check_result $? "Proxy restart failed" >/dev/null
-    fi
-fi
+$BIN/v-restart-proxy $restart
+check_result $? "Proxy restart failed" >/dev/null
 
 # Logging
 log_history "deleted alias $dom_alias on $domain"
diff --git a/bin/v-delete-web-domain-backend b/bin/v-delete-web-domain-backend
index 4b9b24ba..5b548096 100755
--- a/bin/v-delete-web-domain-backend
+++ b/bin/v-delete-web-domain-backend
@@ -11,14 +11,17 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -66,10 +69,8 @@ rm -f $pool/$backend_type.conf
 #----------------------------------------------------------#
 
 # Restarting backend server
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web-backend
-    check_result $? "Backend restart failed" >/dev/null
-fi
+$BIN/v-restart-web-backend $restart
+check_result $? "Backend restart failed" >/dev/null
 
 # Logging
 log_history "deleting backend support for $domain"
diff --git a/bin/v-delete-web-domain-ftp b/bin/v-delete-web-domain-ftp
index b53440c4..08130584 100755
--- a/bin/v-delete-web-domain-ftp
+++ b/bin/v-delete-web-domain-ftp
@@ -11,8 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 ftp_user=$3
 
 # Includes
@@ -20,6 +19,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-delete-web-domain-proxy b/bin/v-delete-web-domain-proxy
index 558f67f4..215506cb 100755
--- a/bin/v-delete-web-domain-proxy
+++ b/bin/v-delete-web-domain-proxy
@@ -11,8 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 restart=$3
 
 # Includes
@@ -20,6 +19,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -58,10 +61,8 @@ update_object_value 'web' 'DOMAIN' "$domain" '$PROXY' ''
 update_object_value 'web' 'DOMAIN' "$domain" '$PROXY_EXT' ''
 
 # Restart proxy server
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-proxy
-    check_result $? "Proxy restart failed" >/dev/null
-fi
+$BIN/v-restart-proxy $restart
+check_result $? "Proxy restart failed" >/dev/null
 
 # Logging
 log_history "disabled proxy support for $domain"
diff --git a/bin/v-delete-web-domain-ssl b/bin/v-delete-web-domain-ssl
index d5f0e35b..131feb23 100755
--- a/bin/v-delete-web-domain-ssl
+++ b/bin/v-delete-web-domain-ssl
@@ -11,8 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 restart=$3
 
 # Includes
@@ -20,6 +19,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -71,15 +74,11 @@ update_object_value 'web' 'DOMAIN' "$domain" '$SSL' 'no'
 decrease_user_value "$user" '$U_WEB_SSL'
 
 # Restarting web server
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "Web restart failed" >/dev/null
+$BIN/v-restart-web $restart
+check_result $? "Web restart failed" >/dev/null
 
-    if [ ! -z "$PROXY_SYSTEM" ]; then
-        $BIN/v-restart-proxy
-        check_result $? "Proxy restart failed" >/dev/null
-    fi
-fi
+$BIN/v-restart-proxy $restart
+check_result $? "Proxy restart failed" >/dev/null
 
 # Logging
 log_history "disabled ssl support for $domain"
diff --git a/bin/v-delete-web-domain-stats b/bin/v-delete-web-domain-stats
index 34c35f56..00566999 100755
--- a/bin/v-delete-web-domain-stats
+++ b/bin/v-delete-web-domain-stats
@@ -12,14 +12,17 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-delete-web-domains b/bin/v-delete-web-domains
index 1406abb9..8822ab0a 100755
--- a/bin/v-delete-web-domains
+++ b/bin/v-delete-web-domains
@@ -43,15 +43,11 @@ done
 #----------------------------------------------------------#
 
 # Restarting web server
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "Web restart failed" >/dev/null
+$BIN/v-restart-web $restart
+check_result $? "Web restart failed" >/dev/null
 
-    if [ ! -z "$PROXY_SYSTEM" ]; then
-        $BIN/v-restart-proxy
-        check_result $? "Proxy restart failed" >/dev/null
-    fi
-fi
+$BIN/v-restart-proxy $restart
+check_result $? "Proxy restart failed" >/dev/null
 
 # Logging
 log_event "$OK" "$ARGUMENTS"
diff --git a/bin/v-get-dns-domain-value b/bin/v-get-dns-domain-value
index 1786e900..ec77df2f 100755
--- a/bin/v-get-dns-domain-value
+++ b/bin/v-get-dns-domain-value
@@ -11,13 +11,16 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 key=$(echo "$3"| tr '[:lower:]' '[:upper:]' | sed "s/^/$/")
 
 # Includes
 source $VESTA/func/main.sh
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-get-mail-account-value b/bin/v-get-mail-account-value
index 556c61ce..f011875c 100755
--- a/bin/v-get-mail-account-value
+++ b/bin/v-get-mail-account-value
@@ -11,14 +11,17 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 account=$3
 key=$(echo "$4"| tr '[:lower:]' '[:upper:]' | sed "s/^/$/")
 
 # Includes
 source $VESTA/func/main.sh
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-get-mail-domain-value b/bin/v-get-mail-domain-value
index 616df282..e7ad584a 100755
--- a/bin/v-get-mail-domain-value
+++ b/bin/v-get-mail-domain-value
@@ -11,13 +11,16 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 key=$(echo "$3"| tr '[:lower:]' '[:upper:]' | sed "s/^/$/")
 
 # Includes
 source $VESTA/func/main.sh
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-insert-dns-domain b/bin/v-insert-dns-domain
index 0a83c205..b767b576 100755
--- a/bin/v-insert-dns-domain
+++ b/bin/v-insert-dns-domain
@@ -74,10 +74,8 @@ chmod 660 $USER_DATA/dns.conf
 #----------------------------------------------------------#
 
 # Restarting named
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-dns $restart
-    check_result $? "Bind restart failed" >/dev/null
-fi
+$BIN/v-restart-dns $restart
+check_result $? "Bind restart failed" >/dev/null
 
 # Logging
 log_event "$OK" "$ARGUMENTS"
diff --git a/bin/v-insert-dns-record b/bin/v-insert-dns-record
index 90205f61..1afdd520 100755
--- a/bin/v-insert-dns-record
+++ b/bin/v-insert-dns-record
@@ -45,10 +45,8 @@ echo "$data" >> $USER_DATA/dns/$domain.conf
 #----------------------------------------------------------#
 
 # Restarting named
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-dns $restart
-    check_result $? "Bind restart failed" >/dev/null
-fi
+$BIN/v-restart-dns $restart
+check_result $? "Bind restart failed" >/dev/null
 
 # Logging
 log_event "$OK" "$ARGUMENTS"
diff --git a/bin/v-insert-dns-records b/bin/v-insert-dns-records
index 3ce767f8..52c72c66 100755
--- a/bin/v-insert-dns-records
+++ b/bin/v-insert-dns-records
@@ -48,10 +48,8 @@ fi
 #----------------------------------------------------------#
 
 # Restarting named
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-dns
-    check_result $? "Bind restart failed" >/dev/null
-fi
+$BIN/v-restart-dns $restart
+check_result $? "Bind restart failed" >/dev/null
 
 # Logging
 log_event "$OK" "$ARGUMENTS"
diff --git a/bin/v-rebuild-cron-jobs b/bin/v-rebuild-cron-jobs
index 5acc830d..40192b63 100755
--- a/bin/v-rebuild-cron-jobs
+++ b/bin/v-rebuild-cron-jobs
@@ -41,10 +41,8 @@ sync_cron_jobs
 #----------------------------------------------------------#
 
 # Restarting crond
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-cron
-    check_result $? "Cron restart failed" >/dev/null
-fi
+$BIN/v-restart-cron $restart
+check_result $? "Cron restart failed" >/dev/null
 
 # Logging
 log_event "$OK" "$ARGUMENTS"
diff --git a/bin/v-rebuild-dns-domain b/bin/v-rebuild-dns-domain
index 2aa34f6f..53639268 100755
--- a/bin/v-rebuild-dns-domain
+++ b/bin/v-rebuild-dns-domain
@@ -82,10 +82,8 @@ update_user_value "$user" '$U_DNS_RECORDS' "$user_records"
 update_user_value "$user" '$SUSPENDED_DNS' "$suspended_dns"
 
 # Restarting named
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-dns "$restart"
-    check_result $? "Bind restart failed" >/dev/null
-fi
+$BIN/v-restart-dns $restart
+check_result $? "Bind restart failed" >/dev/null
 
 # Logging
 log_event "$OK" "$ARGUMENTS"
diff --git a/bin/v-rebuild-dns-domains b/bin/v-rebuild-dns-domains
index 4bb537ab..0b03e819 100755
--- a/bin/v-rebuild-dns-domains
+++ b/bin/v-rebuild-dns-domains
@@ -83,10 +83,8 @@ update_user_value "$user" '$U_DNS_RECORDS' "$user_records"
 update_user_value "$user" '$SUSPENDED_DNS' "$suspended_dns"
 
 # Restarting named
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-dns
-    check_result $? "Bind restart failed" >/dev/null
-fi
+$BIN/v-restart-dns $restart
+check_result $? "Bind restart failed" >/dev/null
 
 # Logging
 log_event "$OK" "$ARGUMENTS"
diff --git a/bin/v-rebuild-web-domains b/bin/v-rebuild-web-domains
index 5ba9ef48..fafcf602 100755
--- a/bin/v-rebuild-web-domains
+++ b/bin/v-rebuild-web-domains
@@ -75,15 +75,11 @@ done
 $BIN/v-update-user-counters $user
 
 # Restarting web server
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "Web restart failed" >/dev/null
+$BIN/v-restart-web $restart
+check_result $? "Web restart failed" >/dev/null
 
-    if [ ! -z "$PROXY_SYSTEM" ]; then
-        $BIN/v-restart-proxy
-        check_result $? "Proxy restart failed" >/dev/null
-    fi
-fi
+$BIN/v-restart-proxy $restart
+check_result $? "Proxy restart failed" >/dev/null
 
 # Logging
 log_event "$OK" "$ARGUMENTS"
diff --git a/bin/v-suspend-cron-job b/bin/v-suspend-cron-job
index 499c0772..43074ef1 100755
--- a/bin/v-suspend-cron-job
+++ b/bin/v-suspend-cron-job
@@ -47,10 +47,8 @@ sync_cron_jobs
 #----------------------------------------------------------#
 
 # Restarting crond
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-cron
-    check_result $? "Cron restart failed" >/dev/null
-fi
+$BIN/v-restart-cron $restart
+check_result $? "Cron restart failed" >/dev/null
 
 # Logging
 log_event "$OK" "$ARGUMENTS"
diff --git a/bin/v-suspend-cron-jobs b/bin/v-suspend-cron-jobs
index 935347ad..8b3f4ad8 100755
--- a/bin/v-suspend-cron-jobs
+++ b/bin/v-suspend-cron-jobs
@@ -42,10 +42,8 @@ done
 #----------------------------------------------------------#
 
 # Restarting crond
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-cron
-    check_result $? "Cron restart failed" >/dev/null
-fi
+$BIN/v-restart-cron $restart
+check_result $? "Cron restart failed" >/dev/null
 
 # Logging
 log_event "$OK" "$ARGUMENTS"
diff --git a/bin/v-suspend-dns-domain b/bin/v-suspend-dns-domain
index ebe45e3a..d016b786 100755
--- a/bin/v-suspend-dns-domain
+++ b/bin/v-suspend-dns-domain
@@ -11,14 +11,17 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 restart="$3"
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-suspend-dns-record b/bin/v-suspend-dns-record
index 0e9afa37..4de9ae40 100755
--- a/bin/v-suspend-dns-record
+++ b/bin/v-suspend-dns-record
@@ -11,20 +11,19 @@
 
 # Argument definition
 user=$1
-domain="$2"
+domain=$2
 id=$3
-restart="$4"
-
-domain_idn="$domain"
-if [[ "$domain" = *[![:ascii:]]* ]]; then
-    domain_idn=$(idn -t --quiet -a $domain)
-fi
+restart=$4
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-suspend-domain b/bin/v-suspend-domain
index 6f017534..74e17f19 100755
--- a/bin/v-suspend-domain
+++ b/bin/v-suspend-domain
@@ -71,16 +71,14 @@ if [ -z "$domain_found" ]; then
 fi
 
 # Restarting services
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "can't restart web" > /dev/null
-    if [ ! -z "$PROXY_SYSTEM" ]; then
-        $BIN/v-restart-proxy
-        check_result $? "can't restart proxy" > /dev/null
-    fi
-    $BIN/v-restart-dns
-    check_result $? "can't restart dns" > /dev/null
-fi
+$BIN/v-restart-web $restat
+check_result $? "can't restart web" > /dev/null
+
+$BIN/v-restart-proxy $restart
+check_result $? "can't restart proxy" > /dev/null
+
+$BIN/v-restart-dns $restart
+check_result $? "can't restart dns" > /dev/null
 
 
 #----------------------------------------------------------#
diff --git a/bin/v-suspend-mail-account b/bin/v-suspend-mail-account
index ba11c8e0..803594eb 100755
--- a/bin/v-suspend-mail-account
+++ b/bin/v-suspend-mail-account
@@ -11,9 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 account=$3
 
 # Includes
@@ -21,6 +19,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-suspend-mail-accounts b/bin/v-suspend-mail-accounts
index a62069cf..bd282ca6 100755
--- a/bin/v-suspend-mail-accounts
+++ b/bin/v-suspend-mail-accounts
@@ -11,14 +11,15 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-suspend-mail-domain b/bin/v-suspend-mail-domain
index afdc1f3d..66fe8152 100755
--- a/bin/v-suspend-mail-domain
+++ b/bin/v-suspend-mail-domain
@@ -11,15 +11,17 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-suspend-user b/bin/v-suspend-user
index 6d049056..6276ce5a 100755
--- a/bin/v-suspend-user
+++ b/bin/v-suspend-user
@@ -74,16 +74,14 @@ fi
 #----------------------------------------------------------#
 
 # Restarting system services
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "Web restart failed" >/dev/null
+$BIN/v-restart-web $restart
+check_result $? "Web restart failed" >/dev/null
 
-    $BIN/v-restart-dns
-    check_result $? "DNS restart failed" >/dev/null
+$BIN/v-restart-dns $restart
+check_result $? "DNS restart failed" >/dev/null
 
-    $BIN/v-restart-cron
-    check_result $? "Cron restart failed" >/dev/null
-fi
+$BIN/v-restart-cron $restart
+check_result $? "Cron restart failed" >/dev/null
 
 # Changing suspend value
 update_user_value "$user" '$SUSPENDED' 'yes'
diff --git a/bin/v-suspend-web-domain b/bin/v-suspend-web-domain
index c3179604..15dbe9c4 100755
--- a/bin/v-suspend-web-domain
+++ b/bin/v-suspend-web-domain
@@ -13,8 +13,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 restart=$3
 
 # Includes
@@ -23,6 +22,10 @@ source $VESTA/func/domain.sh
 source $VESTA/func/ip.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -76,15 +79,11 @@ update_object_value 'web' 'DOMAIN' "$domain" '$SUSPENDED' 'yes'
 increase_user_value "$user" '$SUSPENDED_WEB'
 
 # Restarting web server
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "Web restart failed" >/dev/null
+$BIN/v-restart-web $restart
+check_result $? "Web restart failed" >/dev/null
 
-    if [ ! -z "$PROXY_SYSTEM" ]; then
-        $BIN/v-restart-proxy
-        check_result $? "Proxy restart failed" >/dev/null
-    fi
-fi
+$BIN/v-restart-proxy $restart
+check_result $? "Proxy restart failed" >/dev/null
 
 # Logging
 log_event "$OK" "$ARGUMENTS"
diff --git a/bin/v-suspend-web-domains b/bin/v-suspend-web-domains
index be480390..de8b178d 100755
--- a/bin/v-suspend-web-domains
+++ b/bin/v-suspend-web-domains
@@ -43,15 +43,11 @@ done
 #----------------------------------------------------------#
 
 # Restarting web server
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "Web restart failed" >/dev/null
+$BIN/v-restart-web $restart
+check_result $? "Web restart failed" >/dev/null
 
-    if [ ! -z "$PROXY_SYSTEM" ]; then
-        $BIN/v-restart-proxy
-        check_result $? "Proxy restart failed" >/dev/null
-    fi
-fi
+$BIN/v-restart-proxy $restart
+check_result $? "Proxy restart failed" >/dev/null
 
 # Logging
 log_event "$OK" "$ARGUMENTS"
diff --git a/bin/v-unsuspend-cron-job b/bin/v-unsuspend-cron-job
index 108ddf90..0e40a6ec 100755
--- a/bin/v-unsuspend-cron-job
+++ b/bin/v-unsuspend-cron-job
@@ -47,10 +47,8 @@ sync_cron_jobs
 #----------------------------------------------------------#
 
 # Restarting crond
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-cron
-    check_result $? "Cron restart failed" >/dev/null
-fi
+$BIN/v-restart-cron $restart
+check_result $? "Cron restart failed" >/dev/null
 
 # Logging
 log_event "$OK" "$ARGUMENTS"
diff --git a/bin/v-unsuspend-cron-jobs b/bin/v-unsuspend-cron-jobs
index bc4cfc4e..2f2d740e 100755
--- a/bin/v-unsuspend-cron-jobs
+++ b/bin/v-unsuspend-cron-jobs
@@ -42,10 +42,8 @@ done
 #----------------------------------------------------------#
 
 # Restarting crond
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-cron
-    check_result $? "Cron restart failed" >/dev/null
-fi
+$BIN/v-restart-cron $restart
+check_result $? "Cron restart failed" >/dev/null
 
 # Logging
 log_event "$OK" "$ARGUMENTS"
diff --git a/bin/v-unsuspend-dns-domain b/bin/v-unsuspend-dns-domain
index 49a54091..e845b6a8 100755
--- a/bin/v-unsuspend-dns-domain
+++ b/bin/v-unsuspend-dns-domain
@@ -11,14 +11,16 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
-restart="$3"
+domain=$2
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-unsuspend-dns-record b/bin/v-unsuspend-dns-record
index 35b2d7b4..c84e7744 100755
--- a/bin/v-unsuspend-dns-record
+++ b/bin/v-unsuspend-dns-record
@@ -13,18 +13,17 @@
 user=$1
 domain=$2
 id=$3
-restart="$4"
-
-domain_idn="$domain"
-if [[ "$domain" = *[![:ascii:]]* ]]; then
-    domain_idn=$(idn -t --quiet -a $domain)
-fi
+restart=$4
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-unsuspend-domain b/bin/v-unsuspend-domain
index 294b485c..a0a3b459 100755
--- a/bin/v-unsuspend-domain
+++ b/bin/v-unsuspend-domain
@@ -70,16 +70,14 @@ if [ -z "$domain_found" ]; then
 fi
 
 # Restarting services
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "can't restart web" > /dev/null
-    if [ ! -z "$PROXY_SYSTEM" ]; then
-        $BIN/v-restart-proxy
-        check_result $? "can't restart proxy" > /dev/null
-    fi
-    $BIN/v-restart-dns
-    check_result $? "can't restart dns" > /dev/null
-fi
+$BIN/v-restart-web $restart
+check_result $? "can't restart web" > /dev/null
+
+$BIN/v-restart-proxy $restart
+check_result $? "can't restart proxy" > /dev/null
+
+$BIN/v-restart-dns $restart
+check_result $? "can't restart dns" > /dev/null
 
 
 #----------------------------------------------------------#
diff --git a/bin/v-unsuspend-mail-account b/bin/v-unsuspend-mail-account
index 0137f865..2e9a887f 100755
--- a/bin/v-unsuspend-mail-account
+++ b/bin/v-unsuspend-mail-account
@@ -11,9 +11,7 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 account=$3
 
 # Includes
@@ -21,6 +19,10 @@ source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-unsuspend-mail-accounts b/bin/v-unsuspend-mail-accounts
index 5ad6285d..2c651b2c 100755
--- a/bin/v-unsuspend-mail-accounts
+++ b/bin/v-unsuspend-mail-accounts
@@ -11,14 +11,16 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-unsuspend-mail-domain b/bin/v-unsuspend-mail-domain
index ad9df12e..9c688d6f 100755
--- a/bin/v-unsuspend-mail-domain
+++ b/bin/v-unsuspend-mail-domain
@@ -11,15 +11,17 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-unsuspend-user b/bin/v-unsuspend-user
index 1d3feecd..17c6683d 100755
--- a/bin/v-unsuspend-user
+++ b/bin/v-unsuspend-user
@@ -77,16 +77,14 @@ update_user_value "$user" '$SUSPENDED' 'no'
 decrease_user_value 'admin' '$SUSPENDED_USERS'
 
 # Restarting system services
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "Web restart failed" >/dev/null
+$BIN/v-restart-web $restart
+check_result $? "Web restart failed" >/dev/null
 
-    $BIN/v-restart-dns
-    check_result $? "DNS restart failed" >/dev/null
+$BIN/v-restart-dns $restart
+check_result $? "DNS restart failed" >/dev/null
 
-    $BIN/v-restart-cron
-    check_result $? "Cron restart failed" >/dev/null
-fi
+$BIN/v-restart-cron $restart
+check_result $? "Cron restart failed" >/dev/null
 
 # Logging
 log_event "$OK" "$ARGUMENTS"
diff --git a/bin/v-unsuspend-web-domain b/bin/v-unsuspend-web-domain
index 3b21248e..b47b67f4 100755
--- a/bin/v-unsuspend-web-domain
+++ b/bin/v-unsuspend-web-domain
@@ -11,9 +11,8 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
-restart="$3"
+domain=$2
+restart=$3
 
 # Includes
 source $VESTA/func/main.sh
@@ -21,6 +20,10 @@ source $VESTA/func/domain.sh
 source $VESTA/func/ip.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -74,15 +77,11 @@ update_object_value 'web' 'DOMAIN' "$domain" '$SUSPENDED' 'no'
 decrease_user_value "$user" '$SUSPENDED_WEB'
 
 # Restarting web server
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "Web restart failed" >/dev/null
+$BIN/v-restart-web $restart
+check_result $? "Web restart failed" >/dev/null
 
-    if [ ! -z "$PROXY_SYSTEM" ]; then
-        $BIN/v-restart-proxy
-        check_result $? "Proxy restart failed" >/dev/null
-    fi
-fi
+$BIN/v-restart-proxy $restart
+check_result $? "Proxy restart failed" >/dev/null
 
 # Logging
 log_event "$OK" "$ARGUMENTS"
diff --git a/bin/v-unsuspend-web-domains b/bin/v-unsuspend-web-domains
index b9f4d1e4..2d2676d0 100755
--- a/bin/v-unsuspend-web-domains
+++ b/bin/v-unsuspend-web-domains
@@ -44,15 +44,11 @@ done
 #----------------------------------------------------------#
 
 # Restarting web server
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "Web restart failed" >/dev/null
+$BIN/v-restart-web $restart
+check_result $? "Web restart failed" >/dev/null
 
-    if [ ! -z "$PROXY_SYSTEM" ]; then
-        $BIN/v-restart-proxy
-        check_result $? "Proxy restart failed" >/dev/null
-    fi
-fi
+$BIN/v-restart-proxy $restart
+check_result $? "Proxy restart failed" >/dev/null
 
 # Logging
 log_event "$OK" "$ARGUMENTS"
diff --git a/bin/v-update-mail-domain-disk b/bin/v-update-mail-domain-disk
index 68d58a61..a1b6b3f4 100755
--- a/bin/v-update-mail-domain-disk
+++ b/bin/v-update-mail-domain-disk
@@ -11,14 +11,16 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-update-web-domain-disk b/bin/v-update-web-domain-disk
index 5317b3f0..252fac3c 100755
--- a/bin/v-update-web-domain-disk
+++ b/bin/v-update-web-domain-disk
@@ -11,14 +11,17 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-update-web-domain-ssl b/bin/v-update-web-domain-ssl
index 6dffc281..8a3381a9 100755
--- a/bin/v-update-web-domain-ssl
+++ b/bin/v-update-web-domain-ssl
@@ -14,10 +14,9 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 ssl_dir=$3
-restart="$4"
+restart=$4
 
 # Includes
 source $VESTA/func/main.sh
@@ -25,6 +24,10 @@ source $VESTA/func/domain.sh
 source $VESTA/func/ip.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
@@ -74,15 +77,11 @@ fi
 #----------------------------------------------------------#
 
 # Restarting web server
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "Web restart failed" >/dev/null
+$BIN/v-restart-web $restart
+check_result $? "Web restart failed" >/dev/null
 
-    if [ ! -z "$PROXY_SYSTEM" ]; then
-        $BIN/v-restart-proxy
-        check_result $? "Proxy restart failed" >/dev/null
-    fi
-fi
+$BIN/v-restart-proxy $restart
+check_result $? "Proxy restart failed" >/dev/null
 
 # Logging
 log_history "update ssl certificate for $domain"
diff --git a/bin/v-update-web-domain-stat b/bin/v-update-web-domain-stat
index 56dfc93a..24eba8cf 100755
--- a/bin/v-update-web-domain-stat
+++ b/bin/v-update-web-domain-stat
@@ -11,14 +11,17 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-update-web-domain-traff b/bin/v-update-web-domain-traff
index fda546cc..299bafd2 100755
--- a/bin/v-update-web-domain-traff
+++ b/bin/v-update-web-domain-traff
@@ -11,14 +11,17 @@
 
 # Argument definition
 user=$1
-domain=$(idn -t --quiet -u "$2" )
-domain_idn=$(idn -t --quiet -a "$domain")
+domain=$2
 
 # Includes
 source $VESTA/func/main.sh
 source $VESTA/func/domain.sh
 source $VESTA/conf/vesta.conf
 
+# Additional argument formatting
+format_domain
+format_domain_idn
+
 
 #----------------------------------------------------------#
 #                    Verifications                         #
diff --git a/bin/v-update-web-templates b/bin/v-update-web-templates
index a526e0d4..3196c8b4 100755
--- a/bin/v-update-web-templates
+++ b/bin/v-update-web-templates
@@ -65,19 +65,13 @@ done
 #----------------------------------------------------------#
 
 # Restarting web server
-if [ "$restart" != 'no' ]; then
-    $BIN/v-restart-web
-    check_result $? "restart" >/dev/null 2>&1
+$BIN/v-restart-web $restart
+check_result $? "restart" >/dev/null 2>&1
 
-    if [ ! -z "$PROXY_SYSTTEM" ]; then
-        $BIN/v-restart-proxy
-        check_result $? "restart" >/dev/null 2>&1
-    fi
+$BIN/v-restart-proxy $restart
+check_result $? "restart" >/dev/null 2>&1
 
-    if [ ! -z "$WEB_BACKEND" ]; then
-        $BIN/v-restart-proxy
-        check_result $? "restart" >/dev/null 2>&1
-    fi
-fi
+$BIN/v-restart-proxy $restart
+check_result $? "restart" >/dev/null 2>&1
 
 exit
diff --git a/func/main.sh b/func/main.sh
index 99fb90b2..b1761fd8 100644
--- a/func/main.sh
+++ b/func/main.sh
@@ -843,3 +843,37 @@ is_format_valid() {
         fi
     done
 }
+
+# Domain argument formatting
+format_domain() {
+    if [[ "$domain" = *[![:ascii:]]* ]]; then
+        if [[ "$domain" =~ [[:upper:]] ]]; then
+            domain=$(echo "$domain" |sed 's/[[:upper:]].*/\L&/')
+        fi
+    else
+        if [[ "$domain" =~ [[:upper:]] ]]; then
+            domain=$(echo "$domain" |tr '[:upper:]' '[:lower:]')
+        fi
+    fi
+    if [[ "$domain" =~ ^www\..* ]]; then
+        domain=$(echo "$domain" |sed -e "s/^www.//")
+    fi
+    if [[ "$domain" =~ .*\.$ ]]; then
+        domain=$(echo "$domain" |sed -e "s/\.$//")
+    fi
+}
+
+format_domain_idn() {
+    if [[ "$domain_idn" = *[![:ascii:]]* ]]; then
+        domain_idn=$(idn -t --quiet -a $domain_idn)
+    fi
+}
+
+format_aliases() {
+    if [ ! -z "$aliases" ] && [ "$aliases" != 'none' ]; then
+        aliases=$(echo $aliases |tr '[:upper:]' '[:lower:]' |tr ',' '\n')
+        aliases=$(echo "$aliases" |sed -e "s/\.$//" |sort -u)
+        aliases=$(echo "$aliases" |grep -v www.$domain |sed -e "/^$/d")
+        aliases=$(echo "$aliases" |tr '\n' ',' |sed -e "s/,$//")
+    fi
+}