Improved domain validation plus added SERIAL support

This commit is contained in:
Serghey Rodin 2015-10-21 15:47:32 +03:00
commit 89c1f644fe

View file

@ -146,10 +146,10 @@ is_domain_new() {
web_alias=$(grep -w $dom $VESTA/data/users/*/web.conf) web_alias=$(grep -w $dom $VESTA/data/users/*/web.conf)
fi fi
if [ ! -z "$web_alias" ]; then if [ ! -z "$web_alias" ]; then
c1=$(grep -H "'$dom'" $VESTA/data/users/*/web.conf | cut -f 7 -d /) c1=$(grep -HF "'$dom'" $VESTA/data/users/*/web.conf | cut -f 7 -d /)
c2=$(grep -H "'$dom," $VESTA/data/users/*/web.conf | cut -f 7 -d /) c2=$(grep -HF "'$dom," $VESTA/data/users/*/web.conf | cut -f 7 -d /)
c3=$(grep -H ",$dom," $VESTA/data/users/*/web.conf | cut -f 7 -d /) c3=$(grep -HF ",$dom," $VESTA/data/users/*/web.conf | cut -f 7 -d /)
c4=$(grep -H ",$dom'" $VESTA/data/users/*/web.conf | cut -f 7 -d /) c4=$(grep -HF ",$dom'" $VESTA/data/users/*/web.conf | cut -f 7 -d /)
if [ ! -z "$c1" ] && [ "$type" == "web" ]; then if [ ! -z "$c1" ] && [ "$type" == "web" ]; then
echo "Error: $object $dom exist" echo "Error: $object $dom exist"
log_event "$E_EXISTS" "$EVENT" log_event "$E_EXISTS" "$EVENT"
@ -215,11 +215,13 @@ is_mail_new() {
# Update domain zone # Update domain zone
update_domain_zone() { update_domain_zone() {
conf="$HOMEDIR/$user/conf/dns/$domain.db"
domain_param=$(grep "DOMAIN='$domain'" $USER_DATA/dns.conf) domain_param=$(grep "DOMAIN='$domain'" $USER_DATA/dns.conf)
fields='$RECORD\t$TTL\tIN\t$TYPE\t$PRIORITY\t$VALUE'
eval $domain_param eval $domain_param
SOA=$(idn --quiet -a -t "$SOA") SOA=$(idn --quiet -a -t "$SOA")
if [ -z "$SERIAL" ]; then
SERIAL=$(date +'%Y%m%d01')
fi
zn_conf="$HOMEDIR/$user/conf/dns/$domain.db"
echo "\$TTL $TTL echo "\$TTL $TTL
@ IN SOA $SOA. root.$domain_idn. ( @ IN SOA $SOA. root.$domain_idn. (
$SERIAL $SERIAL
@ -227,7 +229,8 @@ update_domain_zone() {
3600 3600
1209600 1209600
180 ) 180 )
" > $conf " > $zn_conf
fields='$RECORD\t$TTL\tIN\t$TYPE\t$PRIORITY\t$VALUE'
while read line ; do while read line ; do
IFS=$'\n' IFS=$'\n'
for key in $(echo $line|sed "s/' /'\n/g"); do for key in $(echo $line|sed "s/' /'\n/g"); do
@ -240,7 +243,7 @@ update_domain_zone() {
fi fi
if [ "$SUSPENDED" != 'yes' ]; then if [ "$SUSPENDED" != 'yes' ]; then
eval echo -e "\"$fields\""|sed "s/%quote%/'/g" >> $conf eval echo -e "\"$fields\""|sed "s/%quote%/'/g" >> $zn_conf
fi fi
done < $USER_DATA/dns/$domain.conf done < $USER_DATA/dns/$domain.conf
} }
@ -320,6 +323,7 @@ add_web_config() {
# Get config top and bottom line numbers # Get config top and bottom line numbers
get_web_config_brds() { get_web_config_brds() {
serv_line=$(egrep -ni "Name %domain_idn%($| )" $tpl_file |cut -f 1 -d :) serv_line=$(egrep -ni "Name %domain_idn%($| )" $tpl_file |cut -f 1 -d :)
if [ -z "$serv_line" ]; then if [ -z "$serv_line" ]; then
log_event "$E_PARSING" "$EVENT" log_event "$E_PARSING" "$EVENT"
@ -330,15 +334,14 @@ get_web_config_brds() {
bfr_line=$((serv_line - 1)) bfr_line=$((serv_line - 1))
aftr_line=$((last_line - serv_line - 1)) aftr_line=$((last_line - serv_line - 1))
str=$(egrep -ni "Name $domain_idn($| )" $conf | cut -f 1 -d :) str=$(grep -niF "Name $domain_idn" $conf |egrep "$domain_idn$|$domain_idn ")
str=$(echo "$str" |cut -f 1 -d :)
top_line=$((str - serv_line + 1)) top_line=$((str - serv_line + 1))
bottom_line=$((top_line + last_line -1)) bottom_line=$((top_line + last_line -1))
multi=$(sed -n "$top_line,$bottom_line p" $conf |grep ServerAlias |wc -l) multi=$(sed -n "$top_line,$bottom_line p" $conf |grep ServerAlias |wc -l)
if [ "$multi" -ge 2 ]; then if [ "$multi" -ge 2 ]; then
bottom_line=$((bottom_line + multi -1)) bottom_line=$((bottom_line + multi -1))
fi fi
} }
# Replace web config # Replace web config