From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Schantl To: development@lists.ipfire.org Subject: [PATCH] convert-dns-settings: Fix check to prevent doubble-adding the same server Date: Tue, 28 Jan 2020 16:14:35 +0100 Message-ID: <20200128151435.8671-1-stefan.schantl@ipfire.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4852132118638116050==" List-Id: --===============4852132118638116050== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Signed-off-by: Stefan Schantl --- src/scripts/convert-dns-settings | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/scripts/convert-dns-settings b/src/scripts/convert-dns-setti= ngs index e9d4de86b..073356f50 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=3D"${!var}" =20 - # Check if the current server is allready part - # of the array. - for element in "${SERVERS[@]}"; do - [[ $element =3D=3D $server ]] && continue - done - - SERVERS+=3D($server) + # Check if the servers array is empty. + if [ ${#SERVERS[@]} -eq 0 ]; then + # Allways add the first found nameserver to the array. + SERVERS+=3D($server) + else + # Check if the current server is allready part ot the array. + if [[ ! "${SERVERS[@]}" =3D~ "${server}" ]]; then + # Add the server to the array. + SERVERS+=3D($server) + fi + fi done =20 # Remove DNS1 and DNS2 settings from profile file. - sed -i "/^DNS[12]?=3D/d" $file + sed -i "/^DNS[12]=3D/d" $file + + # Unset the local variables for the next round. + unset DNS1 DNS2 done =20 elif [ -s "/var/ipfire/dns/settings" ]; then --=20 2.25.0 --===============4852132118638116050==--