Skip to content

Commit

Permalink
Fix non-interactive interface choosing
Browse files Browse the repository at this point in the history
In interactive mode user choose an interface and its number is used
in the code. In function 'configiface' the actual interface is taken
from NETDEVICES by this number.

In non-interactive mode we have an interface name and it was used as
index in NETDEVICES which failed and the 1st interface was always taken.
It does not matter what interface was passed in NET_DEV variable script
tried to configure eth0.

Fix it with getting interface number by its name.
  • Loading branch information
darkmind committed Oct 11, 2018
1 parent eebbac2 commit a186676
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion sbin/netcardconfig
Expand Up @@ -683,7 +683,20 @@ while (true); do
$DIALOG --menu "$MESSAGE1" 18 60 12 "${DEVICELIST[@]}" "${EXITMENU[@]}" 2>"$TMP" || bailout
read -r DV <"$TMP" ; rm -f "$TMP"
else
DV="${NET_DEV}"
# we have interface name so we need to find its number in NETDEVICES
DV=0
found=false
for DV in "${!NETDEVICES[@]}"; do
if [[ "${NETDEVICES[$DV]}" =~ ^"${NET_DEV} " ]]; then
found=true
break
fi
done
if ! "${found}"; then
echo "There is no interface ${NET_DEV} in the system" >&2
bailout 1
fi

[[ -z "${IFACEDONE}" ]] || bailout
fi
[ "$DV" = "$EXITKEY" ] && bailout
Expand Down

0 comments on commit a186676

Please sign in to comment.