mirror of
https://github.com/serghey-rodin/vesta.git
synced 2025-08-19 21:04:06 -07:00
improved dns zones verifications
This commit is contained in:
parent
a91ac8549d
commit
2346d26bf9
3 changed files with 35 additions and 3 deletions
|
@ -11,7 +11,7 @@ domain=$(idn -t --quiet -u "$2" )
|
|||
domain_idn=$(idn -t --quiet -a "$domain")
|
||||
record=$(idn -t --quiet -u "$3" )
|
||||
rtype=$(echo "$4"| tr '[:lower:]' '[:upper:]')
|
||||
value=$(idn -t --quiet -u "$5" )
|
||||
dvalue=$(idn -t --quiet -u "$5" )
|
||||
id="$6"
|
||||
|
||||
# Importing variables
|
||||
|
@ -28,7 +28,7 @@ source $V_FUNC/domain_func.sh
|
|||
check_args '5' "$#" 'user domain record type value [id]'
|
||||
|
||||
# Checking argument format
|
||||
format_validation 'user' 'domain' 'record' 'rtype'
|
||||
format_validation 'user' 'domain' 'record' 'rtype' 'dvalue'
|
||||
|
||||
# Checking web system is enabled
|
||||
is_system_enabled 'dns'
|
||||
|
@ -65,7 +65,7 @@ is_dns_record_free
|
|||
zone="$V_USERS/$user/zones/$domain"
|
||||
|
||||
# Adding record
|
||||
dns_rec="ID='$id' RECORD='$record' TYPE='$rtype' VALUE='$value'"
|
||||
dns_rec="ID='$id' RECORD='$record' TYPE='$rtype' VALUE='$dvalue'"
|
||||
dns_rec="$dns_rec SUSPEND='no' DATE='$V_DATE'"
|
||||
echo "$dns_rec" >> $zone
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
# Argument defenition
|
||||
user="$1"
|
||||
domain=$(idn -t --quiet -u "$2" )
|
||||
domain_idn=$(idn -t --quiet -a "$domain")
|
||||
id="$3"
|
||||
|
||||
# Importing variables
|
||||
|
|
|
@ -266,6 +266,11 @@ format_validation() {
|
|||
MX) known='yes';;
|
||||
TXT) known='yes';;
|
||||
SRV) known='yes';;
|
||||
DNSKEY) known='yes';;
|
||||
KEY) known='yes';;
|
||||
IPSECKEY) known='yes';;
|
||||
PTR) known='yes';;
|
||||
SPF) known='yes';;
|
||||
*) known='no';;
|
||||
esac
|
||||
|
||||
|
@ -288,6 +293,31 @@ format_validation() {
|
|||
fi
|
||||
}
|
||||
|
||||
# Defining format_dvl function
|
||||
format_dvl() {
|
||||
val="$1"
|
||||
|
||||
# Checking spaces
|
||||
check_spaces="$(echo "$val"|grep ' ')"
|
||||
check_rtype="$(echo "A AAAA NS CNAME" | grep -i -w "$rtype")"
|
||||
if [ ! -z "$check_spaces" ] && [ ! -z "$check_rtype" ]; then
|
||||
echo "Error: $var is out of range"
|
||||
log_event 'debug' "$E_OUTOFRANGE $V_EVENT"
|
||||
exit $E_OUTOFRANGE
|
||||
fi
|
||||
|
||||
# Checking ip
|
||||
if [ "$rtype" = 'A' ]; then
|
||||
format_ip "$val"
|
||||
fi
|
||||
|
||||
# Checking domain
|
||||
if [ "$rtype" = 'NS' ]; then
|
||||
format_dom "$val"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
# Lopp on all variables
|
||||
for var in $*; do
|
||||
# Parsing reference
|
||||
|
@ -302,6 +332,7 @@ format_validation() {
|
|||
domain) format_dom "$v" ;;
|
||||
database) format_db "$v" ;;
|
||||
db_user) format_dbu "$v" ;;
|
||||
dvalue) format_dvl "$v" ;;
|
||||
fname) format_usr "$v" ;;
|
||||
job) format_int "$v" ;;
|
||||
ns) format_dom "$v" ;;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue