X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=sbin%2Fnetcardconfig;h=8916642d5074e440e2628435ef47123135aaa745;hb=ab3ad1162ab10673efd3022a26792cad60633767;hp=74fc205bf15fa8eb74157514345528cfc928459f;hpb=20ae6490ff61e8dfe67ac1dd436f3c74fa648f36;p=grml-network.git diff --git a/sbin/netcardconfig b/sbin/netcardconfig index 74fc205..8916642 100755 --- a/sbin/netcardconfig +++ b/sbin/netcardconfig @@ -24,6 +24,20 @@ bailout() { exit "${1:-0}" } +check_for_blocked_devices() { + if ! command -v rfkill &>/dev/null ; then + echo "Warning: rfkill executable not present, skipping check for blocked devices." + return 0 + fi + + # if we detect any blocked devices (SOFT or HARD) then report + if rfkill | grep -w 'blocked' ; then + return 0 + fi + + return 1 +} + # This function produces the IWOURLINE for interfaces writeiwline() { IWOURLINE="" @@ -585,6 +599,15 @@ while (true); do # first get the device if [ "$count" -gt 1 ]; then if "${INTERACTIVE}" ; then + + # Unblock possibly locked devices? + if [ $iswireless -gt 0 ] && check_for_blocked_devices; then + RF_INFO=$(rfkill | sed 's/$/\\n/') # ensure we have a proper newline layout within dialog + if $DIALOG --yesno "Disabled wireless devices detected:\n\n${RF_INFO}\n\nPlease ensure that any possibly existing hardware switches are disabled.\nDo you want to unblock all of them?" 0 0; then + rfkill unblock all + fi + fi + rm -f "$TMP" $DIALOG --menu "$MESSAGE1" 18 60 12 "${DEVICELIST[@]}" "${EXITMENU[@]}" 2>"$TMP" || bailout read -r DV <"$TMP" ; rm -f "$TMP"