From: Stefan Schantl Date: Tue, 28 Jan 2020 15:14:35 +0000 (+0100) Subject: convert-dns-settings: Fix check to prevent doubble-adding the same server X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=358bcfdb2993f5fa884e2928b6dbd1d82bf89f8b;p=people%2Fms%2Fipfire-2.x.git convert-dns-settings: Fix check to prevent doubble-adding the same server Signed-off-by: Stefan Schantl Signed-off-by: Arne Fitzenreiter --- diff --git a/src/scripts/convert-dns-settings b/src/scripts/convert-dns-settings index e9d4de86ba..073356f50c 100755 --- a/src/scripts/convert-dns-settings +++ b/src/scripts/convert-dns-settings @@ -43,17 +43,24 @@ main() { for var in DNS1 DNS2; do local server="${!var}" - # Check if the current server is allready part - # of the array. - for element in "${SERVERS[@]}"; do - [[ $element == $server ]] && continue - done - - SERVERS+=($server) + # Check if the servers array is empty. + if [ ${#SERVERS[@]} -eq 0 ]; then + # Allways add the first found nameserver to the array. + SERVERS+=($server) + else + # Check if the current server is allready part ot the array. + if [[ ! "${SERVERS[@]}" =~ "${server}" ]]; then + # Add the server to the array. + SERVERS+=($server) + fi + fi done # Remove DNS1 and DNS2 settings from profile file. - sed -i "/^DNS[12]?=/d" $file + sed -i "/^DNS[12]=/d" $file + + # Unset the local variables for the next round. + unset DNS1 DNS2 done elif [ -s "/var/ipfire/dns/settings" ]; then