11#! /bin/bash
22# info: add dns domain
3- # options: user domain ip [template] [exp ] [soa ] [ttl ]
3+ # options: user domain ip [template] [ns1 ] [ns2 ] [ns3] [ns4 ]
44#
55# The function adds DNS zone with records defined in the template. If the exp
66# argument isn't stated, the expiration date value will be set to next year.
@@ -21,10 +21,11 @@ domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
2121domain_idn=$( idn -t --quiet -a " $domain " )
2222ip=$3
2323template=$4
24- next_year=$( date +%F -d " + 1 year" )
25- exp=${5-$next_year }
26- soa=$6
27- ttl=${7-14400}
24+ ns1=$5
25+ ns2=$6
26+ ns3=$7
27+ ns4=$8
28+ restart=$9
2829
2930# Includes
3031source $VESTA /conf/vesta.conf
@@ -36,8 +37,8 @@ source $VESTA/func/domain.sh
3637# Verifications #
3738# ----------------------------------------------------------#
3839
39- check_args ' 3' " $# " ' user domain ip [template] [exp ] [soa ] [ttl ]'
40- validate_format ' user' ' domain' ' ip' ' exp ' ' ttl '
40+ check_args ' 3' " $# " ' user domain ip [template] [ns1 ] [ns2 ] [ns3] [ns4 ]'
41+ validate_format ' user' ' domain' ' ip'
4142is_system_enabled " $DNS_SYSTEM "
4243is_object_valid ' user' ' USER' " $user "
4344is_object_unsuspended ' user' ' USER' " $user "
5152 is_dns_template_valid
5253fi
5354
55+ if [ ! -z " $ns1 " ]; then
56+ ns1=$( echo $5 | sed -e ' s/\.*$//g' -e ' s/^\.*//g' )
57+ validate_format ' ns1'
58+ fi
59+ if [ ! -z " $ns2 " ]; then
60+ ns2=$( echo $6 | sed -e ' s/\.*$//g' -e ' s/^\.*//g' )
61+ validate_format ' ns2'
62+ fi
63+
64+ if [ ! -z " $ns3 " ]; then
65+ ns3=$( echo $7 | sed -e ' s/\.*$//g' -e ' s/^\.*//g' )
66+ validate_format ' ns3'
67+ fi
68+ if [ ! -z " $ns4 " ]; then
69+ ns4=$( echo $8 | sed -e ' s/\.*$//g' -e ' s/^\.*//g' )
70+ validate_format ' ns4'
71+ fi
72+
5473
5574# ----------------------------------------------------------#
5675# Action #
5776# ----------------------------------------------------------#
5877
5978# Defining variables
60- i=1
61- ns=$( get_user_value ' $NS' )
62- for nameserver in ${ns// ,/ } ; do
63- eval ns$i =$nameserver
64- (( ++ i))
65- done
66-
67- # Define soa
68- if [ -z " $soa " ]; then
69- soa=" $ns1 "
79+ if [ -z $ns2 ]; then
80+ i=1
81+ ns=$( get_user_value ' $NS' )
82+ for nameserver in ${ns// ,/ } ; do
83+ eval ns$i =$nameserver
84+ (( ++ i))
85+ done
7086fi
87+ soa=" $ns1 "
88+ exp=$( date +%F -d " + 1 year" )
89+ ttl=14400
90+
7191
7292# Adding zone to dns dir
7393cat $DNSTPL /$template .tpl | \
@@ -78,10 +98,6 @@ cat $DNSTPL/$template.tpl |\
7898 -e " s/%ns2%/$ns2 /g" \
7999 -e " s/%ns3%/$ns3 /g" \
80100 -e " s/%ns4%/$ns4 /g" \
81- -e " s/%ns5%/$ns5 /g" \
82- -e " s/%ns6%/$ns6 /g" \
83- -e " s/%ns7%/$ns7 /g" \
84- -e " s/%ns8%/$ns8 /g" \
85101 -e " s/%time%/$TIME /g" \
86102 -e " s/%date%/$DATE /g" > $USER_DATA /dns/$domain .conf
87103chmod 660 $USER_DATA /dns/$domain .conf
@@ -116,7 +132,9 @@ increase_user_value "$user" '$U_DNS_DOMAINS'
116132increase_user_value " $user " ' $U_DNS_RECORDS' " $records "
117133
118134# Restart named
119- $BIN /v_restart_dns " $EVENT "
135+ if [ " $restart " != ' no' ]; then
136+ $BIN /v_restart_dns " $EVENT "
137+ fi
120138
121139# Logging
122140log_history " $EVENT "
0 commit comments