X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=sbin%2Fgrml-network;h=f1c8e7af68e770286370a2ded7da9f64c588e7ad;hb=e982bd7cede6f32bb2e15a06338250fdfdab39b8;hp=617c272a5571882af4c717640440993f946ce5c7;hpb=5ccffd6ee849bb7c004e464f3972bcce22beac7c;p=grml-network.git diff --git a/sbin/grml-network b/sbin/grml-network index 617c272..f1c8e7a 100755 --- a/sbin/grml-network +++ b/sbin/grml-network @@ -9,9 +9,8 @@ PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin" export PATH -if [ $UID != 0 ] ; then - echo Error: become root before starting $0 >& 2 - exit 100 +if [ $(id -ru) -ne 0 ] ; then + echo 1>&2 "Error: please run this script with uid 0 (root)." ; exit 1 fi # XDIALOG_HIGH_DIALOG_COMPAT=1 @@ -50,46 +49,18 @@ killgauge(){ touch "$TMP.done" ; wait ; rm -f "$TMP.done" } -# Provider specific setup - menu -provider () { - MENUINTERNET=$($DIALOG --stdout --clear --title "$PN" --menu \ - "This script is a submenu of grml-network to set up an internet connection" 14 65 7 \ - "TUG" "Connect via vpnc to TU Graz" \ - "VCGraz" "Connect via pptp to VC-Graz" \ - "Inode" "Connect via pptp to Inode" \ - "Students" "Connect via pptp to Inode-Students" \ - "Exit" "Exit this program") - - retval=$? - case $retval in - (0) - if [ $MENUINTERNET == TUG ] ; then - exec grml-vpnc-tugraz - fi - if [ $MENUINTERNET == VCGraz ] ; then - exec grml-pptp-vcgraz - fi - if [ $MENUINTERNET == Inode ] ; then - exec grml-pptp-inode - fi - if [ $MENUINTERNET == Students ] ; then - exec grml-pptp-xdsl-students - fi ;; - (1) echo "Cancel pressed." ;; - (255) echo "ESC pressed." ;; - esac -} - main(){ if [ -z "$NOCHECK" -a -x /usr/bin/nmap ] ; then gauge "Checking network status..." & STATUS="" - GW="`echo $(route -n | awk '/^0\.0\.0\.0/{print $2}')`" - GWDEV="`echo $(route -n | awk '/^0\.0\.0\.0/{print $NF}')`" - NMAP="$(nmap -sP --host_timeout 4000 --max_rtt_timeout 4000 $GW 2>/dev/null)" - - if [ "$?" = 0 ]; then - echo "$NMAP" | grep -q "down" >/dev/null 2>&1 || STATUS="online" + GW="$(echo $(route -n | awk '/^0\.0\.0\.0/{print $2}'))" + GWDEV="$(echo $(route -n | awk '/^0\.0\.0\.0/{print $NF}'))" + NMAP="$(nmap -sP --host_timeout 4000 --max_rtt_timeout 4000ms $GW 2>/dev/null)" + + if [ $? -eq 0 ]; then + if ! echo "$NMAP" | grep -q '0 hosts up' ; then + STATUS="Online" + fi fi killgauge @@ -110,46 +81,29 @@ case "$LANGUAGE" in TITLE1="Netzwerk-Setup" STATUS="Status: $STATUS" MESSAGE1="Bitte auswaehlen:" - MODEMSETUP="/dev/modem-Schnittstelle (neu) konfigurieren" NETCARD="Netzwerkkarten (LAN/WLAN) Konfiguration" - WIRELESS="Wireless Zugang" - GPRS="Einwahl per Handy/GPRS" DSL="Einwahl per DSL-Modem" ISDN="Einwahl per ISDN" - MODEM="Einwahl per Analogmodem" - PROVIDER="Provider spezifische Einstellungen" EXIT="Beenden" ;; *) TITLE1="Network Setup" STATUS="Current state: $STATUS" MESSAGE1="Please select:" - MODEMSETUP="(re)configure /dev/modem device" NETCARD="Configure network card (LAN/WLAN)" - WIRELESS="Wireless access" - GPRS="Dial via cellphone/GPRS" DSL="Dial via DSL-adapter" ISDN="Dial via ISDN" - MODEM="Dial via analog modem" - PROVIDER="Provider specific setup" EXIT="Quit" ;; esac # Shortcut description selected TYPES=(netcardconfig "$NETCARD" \ -provider "$PROVIDER" \ -modemlink "$MODEMSETUP" \ -gprsconnect "$GPRS" \ pppoeconf "$DSL" \ -isdnconfig "$ISDN" \ -wvdial "$MODEM") +isdnconfig "$ISDN") -type wvdial >/dev/null 2>&1 || { unset TYPES[13]; unset TYPES[12]; } -type isdnconfig >/dev/null 2>&1 || { unset TYPES[11]; unset TYPES[10]; } -type pppoeconf >/dev/null 2>&1 || { unset TYPES[9]; unset TYPES[8]; } -type gprsconnect >/dev/null 2>&1 || { unset TYPES[7]; unset TYPES[6]; } -type modemlink >/dev/null 2>&1 || { unset TYPES[5]; unset TYPES[4]; } +type pppoeconf >/dev/null 2>&1 || { unset TYPES[2]; unset TYPES[3]; } +type isdnconfig >/dev/null 2>&1 || { unset TYPES[4]; unset TYPES[5]; } rm -f "$TMP" @@ -161,10 +115,6 @@ read TYPE <"$TMP" TYPE="${TYPE#\"}"; TYPE="${TYPE%\"}" rm -f "$TMP" -case "$TYPE" in - wvdial) [ -e /etc/wvdial.conf ] || wvdialconf /etc/wvdial.conf ;; -esac - eval $TYPE return "$?" }