From 74948ae5c1315388ac02856e4f723d5d6fdbe486 Mon Sep 17 00:00:00 2001 From: DL6ER Date: Wed, 14 Apr 2021 22:50:04 +0200 Subject: [PATCH] The correct port separator is '#' not ':' in dnsmasq style. This should not have been changed in #4083 in the first place. Signed-off-by: DL6ER --- automated install/basic-install.sh | 9 ++++----- test/test_automated_install.py | 28 ++++++++++++++-------------- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh index 07683204..eb52aea3 100755 --- a/automated install/basic-install.sh +++ b/automated install/basic-install.sh @@ -1025,9 +1025,8 @@ valid_ip() { # Regex matching one IPv4 component, i.e. an integer from 0 to 255. # See https://tools.ietf.org/html/rfc1340 local ipv4elem="(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]?|0)"; - # Regex matching an optional port beginning with : from 0 to 65535 - # See https://tools.ietf.org/html/rfc1340#page-33 - local portelem="(:(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))?"; + # Regex matching an optional port (starting with '#') range of 1-65536 + local portelem="(#(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))?"; # Build a full IPv4 regex from the above subexpressions local regex="^${ipv4elem}\.${ipv4elem}\.${ipv4elem}\.${ipv4elem}${portelem}$" @@ -1046,8 +1045,8 @@ valid_ip6() { local ipv6elem="[0-9a-fA-F]{1,4}" # Regex matching an IPv6 CIDR, i.e. 1 to 128 local v6cidr="(\\/([1-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8])){0,1}" - # Regex matching an optional port beginning with # matching optional port number starting '#' with range of 1-65536 - local portelem="(#([1-9]|[1-8][0-9]|9[0-9]|[1-8][0-9]{2}|9[0-8][0-9]|99[0-9]|[1-8][0-9]{3}|9[0-8][0-9]{2}|99[0-8][0-9]|999[0-9]|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-6]))?" + # Regex matching an optional port (starting with '#') range of 1-65536 + local portelem="(#(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))?"; # Build a full IPv6 regex from the above subexpressions local regex="^(((${ipv6elem}))*((:${ipv6elem}))*::((${ipv6elem}))*((:${ipv6elem}))*|((${ipv6elem}))((:${ipv6elem})){7})${v6cidr}${portelem}$" diff --git a/test/test_automated_install.py b/test/test_automated_install.py index 1266f46b..44624082 100644 --- a/test/test_automated_install.py +++ b/test/test_automated_install.py @@ -546,23 +546,23 @@ def test_validate_ip(Pihole): test_address('256.255.255.255', False) test_address('1092.168.1.1', False) test_address('not an IP', False) - test_address('8.8.8.8:', False) - test_address('8.8.8.8:0') - test_address('8.8.8.8:1') - test_address('8.8.8.8:42') - test_address('8.8.8.8:888') - test_address('8.8.8.8:1337') - test_address('8.8.8.8:65535') - test_address('8.8.8.8:65536', False) - test_address('8.8.8.8:-1', False) + test_address('8.8.8.8#', False) + test_address('8.8.8.8#0') + test_address('8.8.8.8#1') + test_address('8.8.8.8#42') + test_address('8.8.8.8#888') + test_address('8.8.8.8#1337') + test_address('8.8.8.8#65535') + test_address('8.8.8.8#65536', False) + test_address('8.8.8.8#-1', False) test_address('00.0.0.0', False) test_address('010.0.0.0', False) test_address('001.0.0.0', False) - test_address('0.0.0.0:00', False) - test_address('0.0.0.0:01', False) - test_address('0.0.0.0:001', False) - test_address('0.0.0.0:0001', False) - test_address('0.0.0.0:00001', False) + test_address('0.0.0.0#00', False) + test_address('0.0.0.0#01', False) + test_address('0.0.0.0#001', False) + test_address('0.0.0.0#0001', False) + test_address('0.0.0.0#00001', False) def test_os_check_fails(Pihole):