From 1c139056e6f944268fd8852c074961425737a55a Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Fri, 20 Jan 2017 15:21:03 +0000 Subject: added check_shell, chk_out, and chk_exit. --- ChangeLog | 19 +++++++++++++ setnet.sh | 95 ++++++++++++++++++++++++++++++++++++++++++--------------------- 2 files changed, 82 insertions(+), 32 deletions(-) create mode 100644 ChangeLog diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..6ecc229 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,19 @@ +2017-01-20 KatolaZ + + * setnet.sh (0.3): + * implemented check of running shell + * implemented workaround for zsh -- now fully supported + * added chk_out and chk_exit + * all direct commands (e.g., ip, wpa_cli) are now checked + +2017-01-07 KatolaZ + + * setnet.sh (configure_device): Improved wifi detection + (netdiag_ping), (netdiag_traceroute),(netdiag_query): + changed dialog to programbox + * solved viasualitation bug in ip config + * added a manpage + * Added configuration variable "WIFI_DEVICES" + * The "Setup interface" menu has been reorganised + * added "Config IP Address" and "Manage Wifi Networking" + diff --git a/setnet.sh b/setnet.sh index 4471ec6..9e363a5 100755 --- a/setnet.sh +++ b/setnet.sh @@ -321,6 +321,39 @@ check_sudo(){ } +## +## Check the output of a command provided as argument against an +## expected output +## +##function +chk_out(){ + + EXP_OUT=$1 + shift + ACT_OUT=$(eval "$*") + [ "${ACT_OUT}" = "${EXP_OUT}" ] || \ + log "chk_out" "Error: got '${ACT_OUT}' when expecting '${EXP_OUT}'" + +} + + +## +## Check the exit value of a command provided as argument against an +## expected output +## +##function +chk_exit(){ + + EXP_EXIT=$1 + shift + eval "$*" + ACT_EXIT=$? + [ "${ACT_EXIT}" = "${EXP_EXIT}" ] || \ + log "chk_exit" "Error: got '${ACT_EXIT}' when expecting '${EXP_EXIT}'" + +} + + ########################################## @@ -460,16 +493,16 @@ ${DEV_GW}\nDNS1: ${DEV_DNS1}\nDNS2: ${DEV_DNS2}'\ ## Configure IP - ip link set "${DEVNAME}" down - ip link set "${DEVNAME}" up - ip address flush dev "${DEVNAME}" - ip address add "${DEV_IP}/${DEV_NETMASK}" dev "${DEVNAME}" + chk_exit 0 ip link set "${DEVNAME}" down + chk_exit 0 ip link set "${DEVNAME}" up + chk_exit 0 ip address flush dev "${DEVNAME}" + chk_exit 0 ip address add "${DEV_IP}/${DEV_NETMASK}" dev "${DEVNAME}" ## Configure GW #if [ -n "${DEV_GW}" ]; then - ip route flush dev "${DEVNAME}" - ip route add "${DEV_NET}/${DEV_NETMASK}" dev "${DEVNAME}" - ip route add default via "${DEV_GW}" + chk_exit 0 ip route flush dev "${DEVNAME}" + chk_exit 0 ip route add "${DEV_NET}/${DEV_NETMASK}" dev "${DEVNAME}" + chk_exit 0 ip route add default via "${DEV_GW}" #fi ## Configure DNS #if [ -n "${DEV_DNS1}" ] || @@ -619,13 +652,14 @@ wpa_authenticate_EAP_PEAP(){ # now we can begin -- get the EAP key_mgmt KEY_MGMT=$(wpa_cli -i ${DEVNAME} get_network ${NET_NUM} key_mgmt | tr ' ' '\n' | \ grep "EAP" | head -1) - wpa_cli -i ${DEVNAME} set_network ${NET_NUM} key_mgmt ${KEY_MGMT} + + chk_out "OK" wpa_cli -i ${DEVNAME} set_network ${NET_NUM} key_mgmt ${KEY_MGMT} ## Set the eap to PEAP - wpa_cli -i ${DEVNAME} set_network ${NET_NUM} eap PEAP + chk_out "OK" wpa_cli -i ${DEVNAME} set_network ${NET_NUM} eap PEAP ## Set identity and password - wpa_cli -i ${DEVNAME} set_network ${NET_NUM} identity "${EAP_IDENTITY}" - wpa_cli -i ${DEVNAME} set_network ${NET_NUM} password "${EAP_PASSWORD}" + chk_out "OK" wpa_cli -i ${DEVNAME} set_network ${NET_NUM} identity "${EAP_IDENTITY}" + chk_out "OK" wpa_cli -i ${DEVNAME} set_network ${NET_NUM} password "${EAP_PASSWORD}" eval "${DIALOG} --defaultno --yesno \ 'Network \"${W_ESSID}\" added\nSave configuration file?' \ @@ -637,7 +671,7 @@ wpa_authenticate_EAP_PEAP(){ ## We can now enable the network - wpa_cli -i ${DEVNAME} enable_network ${NET_NUM} + chk_out "OK" wpa_cli -i ${DEVNAME} enable_network ${NET_NUM} return 0 @@ -654,7 +688,7 @@ wifi_authenticate_EAP(){ NET_NUM=$(wpa_cli -i ${DEVNAME} add_network | tail -1) log "wifi_authenticate" "NET_NUM: ${NET_NUM}" - wpa_cli -i ${DEVNAME} set_network ${NET_NUM} ssid "\"${W_ESSID}\"" + chk_out "OK" wpa_cli -i ${DEVNAME} set_network ${NET_NUM} ssid "\"${W_ESSID}\"" ## then we check what kind of EAP authentication is available: ## @@ -681,7 +715,7 @@ wifi_authenticate_EAP(){ ### If we get here, there was an error before, and we should ### remove the network to not clutter wpa_supplicant... - wpa_cli -i ${DEVNAME} remove_network ${NET_NUM} + chk_out "OK" wpa_cli -i ${DEVNAME} remove_network ${NET_NUM} eval "${DIALOG} --msgbox 'EAP-${EAP_TYPE} authentication is not currently supported\n' \ ${INFO_HEIGHT} ${INFO_WIDTH}" @@ -699,8 +733,8 @@ wifi_authenticate_ESS(){ NET_NUM=$(wpa_cli -i ${DEVNAME} add_network | tail -1) log "wifi_authenticate" "NET_NUM: ${NET_NUM}" - wpa_cli -i ${DEVNAME} set_network ${NET_NUM} ssid "\"${W_ESSID}\"" - wpa_cli -i ${DEVNAME} set_network ${NET_NUM} key_mgmt NONE + chk_out "OK" wpa_cli -i ${DEVNAME} set_network ${NET_NUM} ssid "\"${W_ESSID}\"" + chk_out "OK" wpa_cli -i ${DEVNAME} set_network ${NET_NUM} key_mgmt NONE eval "${DIALOG} --defaultno --yesno \ 'Network \"${W_ESSID}\" added\nSave configuration file?' \ ${INFO_HEIGHT} ${INFO_WIDTH} " 2> ${TMPFILE} @@ -710,7 +744,7 @@ wifi_authenticate_ESS(){ fi ## We can now enable the network - wpa_cli -i ${DEVNAME} enable_network ${NET_NUM} + chk_out "OK" wpa_cli -i ${DEVNAME} enable_network ${NET_NUM} return 0 @@ -740,8 +774,8 @@ wifi_authenticate_PSK(){ NET_NUM=$(wpa_cli -i ${DEVNAME} add_network | tail -1) - wpa_cli -i ${DEVNAME} set_network ${NET_NUM} ssid "\"${W_ESSID}\"" - wpa_cli -i ${DEVNAME} set_network ${NET_NUM} psk \"${PSK}\" + chk_out "OK" wpa_cli -i ${DEVNAME} set_network ${NET_NUM} ssid "\"${W_ESSID}\"" + chk_out "OK" wpa_cli -i ${DEVNAME} set_network ${NET_NUM} psk \"${PSK}\" ## remove the password from tmpfile echo "" > ${TMPFILE} eval "${DIALOG} --defaultno --yesno \ @@ -753,7 +787,7 @@ wifi_authenticate_PSK(){ fi ## We can now enable the network - wpa_cli -i ${DEVNAME} enable_network ${NET_NUM} + chk_out "OK" wpa_cli -i ${DEVNAME} enable_network ${NET_NUM} eval "${DIALOG} --msgbox 'Network added successfully' ${INFO_HEIGHT} ${INFO_WIDTH}" return 0 @@ -797,8 +831,7 @@ wifi_authenticate(){ if [ ${NET_EXISTS} != 0 ]; then NET_NUM=$(wpa_cli -i ${DEVNAME} list_networks | tail -n +2 | sed -r -e 's/\t/\|/g' \ | cut -d "|" -f 1,2 | grep "${W_ESSID}$" | cut -d "|" -f 1) - wpa_cli -i ${DEVNAME} remove_network ${NET_NUM} > ${TMPFILE} - STATUS=$(cat ${TMPFILE}) + STATUS=$(wpa_cli -i ${DEVNAME} remove_network ${NET_NUM}) if [ "${STATUS}" != "OK" ]; then eval "${DIALOG} --msgbox 'Error while removing existing \ network:\n$essid: {W_ESSID}'" ${INFO_HEIGHT} ${INFO_WIDTH} @@ -912,8 +945,7 @@ wifi_save_file(){ ##local DEVNAME=$1 - wpa_cli -i ${DEVNAME} save_config | tail -1 > ${TMPFILE} - SAVE_STATUS=$(cat ${TMPFILE}) + SAVE_STATUS=$(wpa_cli -i ${DEVNAME} save_config | tail -1 ) if [ "${SAVE_STATUS}" = "OK" ]; then eval "${DIALOG} --msgbox 'Current configuration dumped to file ${WPA_FILE}' \ ${INFO_HEIGHT} ${INFO_WIDTH}" @@ -1228,20 +1260,19 @@ configure_wifi(){ ##function set_device_up(){ -##local -DEVNAME=$1 - - ip link set ${DEVNAME} up + ##local + DEVNAME=$1 + chk_exit 0 ip link set ${DEVNAME} up + } ##function set_device_down(){ - -##local -DEVNAME=$1 - ip link set ${DEVNAME} down + ##local + DEVNAME=$1 + chk_exit 0 ip link set ${DEVNAME} down } -- cgit v1.2.3