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=""
$DIALOG --inputbox "$MESSAGE8 $DV" 10 45 "${BC:-${IP%.*}.255}" 2>"$TMP" || bailout 1
read -r BC <"$TMP" ; rm -f "$TMP"
- $DIALOG --inputbox "$MESSAGE9" 10 45 "${DG:-${IP%.*}.1}" 2>"$TMP"
+ # if we already have a default route, don't suggest to add another one as that might fail
+ __default_gw=""
+ if ! route -en | grep -q '^0.0.0.0' ; then
+ __default_gw="${DG:-${IP%.*}.1}"
+ fi
+ $DIALOG --inputbox "$MESSAGE9" 10 45 "${__default_gw}" 2>"$TMP"
read -r DG <"$TMP" ; rm -f "$TMP"
if [ -f "/etc/resolv.conf" ]; then
# 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"