Skip to content

Commit 2346d26

Browse files
committed
improved dns zones verifications
1 parent a91ac85 commit 2346d26

File tree

3 files changed

+35
-3
lines changed

3 files changed

+35
-3
lines changed

bin/v_add_dns_domain_record

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ domain=$(idn -t --quiet -u "$2" )
1111
domain_idn=$(idn -t --quiet -a "$domain")
1212
record=$(idn -t --quiet -u "$3" )
1313
rtype=$(echo "$4"| tr '[:lower:]' '[:upper:]')
14-
value=$(idn -t --quiet -u "$5" )
14+
dvalue=$(idn -t --quiet -u "$5" )
1515
id="$6"
1616

1717
# Importing variables
@@ -28,7 +28,7 @@ source $V_FUNC/domain_func.sh
2828
check_args '5' "$#" 'user domain record type value [id]'
2929

3030
# Checking argument format
31-
format_validation 'user' 'domain' 'record' 'rtype'
31+
format_validation 'user' 'domain' 'record' 'rtype' 'dvalue'
3232

3333
# Checking web system is enabled
3434
is_system_enabled 'dns'
@@ -65,7 +65,7 @@ is_dns_record_free
6565
zone="$V_USERS/$user/zones/$domain"
6666

6767
# Adding record
68-
dns_rec="ID='$id' RECORD='$record' TYPE='$rtype' VALUE='$value'"
68+
dns_rec="ID='$id' RECORD='$record' TYPE='$rtype' VALUE='$dvalue'"
6969
dns_rec="$dns_rec SUSPEND='no' DATE='$V_DATE'"
7070
echo "$dns_rec" >> $zone
7171

bin/v_del_dns_domain_record

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
# Argument defenition
99
user="$1"
1010
domain=$(idn -t --quiet -u "$2" )
11+
domain_idn=$(idn -t --quiet -a "$domain")
1112
id="$3"
1213

1314
# Importing variables

func/shared_func.sh

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,11 @@ format_validation() {
266266
MX) known='yes';;
267267
TXT) known='yes';;
268268
SRV) known='yes';;
269+
DNSKEY) known='yes';;
270+
KEY) known='yes';;
271+
IPSECKEY) known='yes';;
272+
PTR) known='yes';;
273+
SPF) known='yes';;
269274
*) known='no';;
270275
esac
271276

@@ -288,6 +293,31 @@ format_validation() {
288293
fi
289294
}
290295

296+
# Defining format_dvl function
297+
format_dvl() {
298+
val="$1"
299+
300+
# Checking spaces
301+
check_spaces="$(echo "$val"|grep ' ')"
302+
check_rtype="$(echo "A AAAA NS CNAME" | grep -i -w "$rtype")"
303+
if [ ! -z "$check_spaces" ] && [ ! -z "$check_rtype" ]; then
304+
echo "Error: $var is out of range"
305+
log_event 'debug' "$E_OUTOFRANGE $V_EVENT"
306+
exit $E_OUTOFRANGE
307+
fi
308+
309+
# Checking ip
310+
if [ "$rtype" = 'A' ]; then
311+
format_ip "$val"
312+
fi
313+
314+
# Checking domain
315+
if [ "$rtype" = 'NS' ]; then
316+
format_dom "$val"
317+
fi
318+
319+
}
320+
291321
# Lopp on all variables
292322
for var in $*; do
293323
# Parsing reference
@@ -302,6 +332,7 @@ format_validation() {
302332
domain) format_dom "$v" ;;
303333
database) format_db "$v" ;;
304334
db_user) format_dbu "$v" ;;
335+
dvalue) format_dvl "$v" ;;
305336
fname) format_usr "$v" ;;
306337
job) format_int "$v" ;;
307338
ns) format_dom "$v" ;;

0 commit comments

Comments
 (0)