Procházet zdrojové kódy

Fix #3990 (#3993)

* Fix #3990

Limit ID to 1 and higher

* Fix test

Caused by duplicate name
Jaap Marcus před 2 roky
rodič
revize
77903b4272
2 změnil soubory, kde provedl 13 přidání a 1 odebrání
  1. 8 1
      func/main.sh
  2. 5 0
      test/test.bats

+ 8 - 1
func/main.sh

@@ -1016,6 +1016,13 @@ is_fw_port_format_valid() {
 	fi
 }
 
+# DNS record id validator
+is_id_format_valid() {
+	if ! echo "$1" | grep -qE '^[1-9][0-9]{0,}$'; then
+		check_result "$E_INVALID" "invalid $2 format :: $1"
+	fi
+}
+
 # Integer validator
 is_int_format_valid() {
 	if ! [[ "$1" =~ ^[0-9]+$ ]]; then
@@ -1182,7 +1189,7 @@ is_format_valid() {
 				hash) is_hash_format_valid "$arg" "$arg_name" ;;
 				host) is_object_format_valid "$arg" "$arg_name" ;;
 				hour) is_cron_format_valid "$arg" $arg_name ;;
-				id) is_int_format_valid "$arg" 'id' ;;
+				id) is_id_format_valid "$arg" 'id' ;;
 				iface) is_interface_format_valid "$arg" ;;
 				ip) is_ip_format_valid "$arg" ;;
 				ipv6) is_ipv6_format_valid "$arg" ;;

+ 5 - 0
test/test.bats

@@ -1308,6 +1308,11 @@ function check_ip_not_banned(){
     refute_output
 }
 
+@test "DNS: Add domain record *.domain.com with ID 0" {
+		run v-add-dns-record $user $domain '*' A 198.18.0.125 '' 0
+		assert_failure $E_INVALID
+}
+
 @test "DNS: Change DNS record" {
   run v-change-dns-record $user $domain 20 test A 198.18.0.125 "" "" 1500
   assert_success