From: Arne Fitzenreiter Date: Mon, 28 Jul 2008 04:25:42 +0000 (+0200) Subject: Fix pingtest at ip-up X-Git-Tag: v2.3-beta2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fc1e05c014d2aae03eeb0e05837fe4d29d9861ed;p=people%2Fms%2Fipfire-2.x.git Fix pingtest at ip-up --- diff --git a/doc/packages-list.txt b/doc/packages-list.txt index 89dfac415b..f5a3079f44 100644 --- a/doc/packages-list.txt +++ b/doc/packages-list.txt @@ -1,4 +1,4 @@ -== List of softwares used to build IPFire Version: 2.3-test == +== List of softwares used to build IPFire Version: 2.3-beta2 == * Archive-Tar-1.29 * Archive-Zip-1.16 * BerkeleyDB-0.27 diff --git a/src/ppp/ip-up b/src/ppp/ip-up index 80fb49f49e..ec4fc82b5f 100644 --- a/src/ppp/ip-up +++ b/src/ppp/ip-up @@ -43,20 +43,36 @@ fi echo -n "$1" > /var/ipfire/red/iface echo -n "$4" > /var/ipfire/red/local-ipaddress echo -n "$5" > /var/ipfire/red/remote-ipaddress + grep -v "gateway" /etc/hosts > /tmp/hosts +echo "$5 gateway" >> /tmp/hosts +touch /var/ipfire/red/active +mv /tmp/hosts /etc/hosts + +#Start pingtest in background and store the pid +ping -c 2 $5 > /tmp/gatewayping & +PINGPID=$! + +run_subdir ${rc_base}/init.d/networking/red.up/ + +[ -e "/var/ipfire/ppp/nobeeps" ] || /etc/rc.d/init.d/beep up + +#Make sure that pingtest has enough time +sleep 3 -TEST=`ping -c 2 $5 2>/dev/null | tail -2 | head -1 | cut -d"," -f2`; +#Kill the pingtest +kill $PINGPID >/dev/null 2>&1 + +#Check if gateway has answerd to ping, if not replace with ping.ipfire.org +TEST=`cat /tmp/gatewayping | tail -2 | head -1 | cut -d"," -f2`; if [ "$TEST" == " 2 packets received" ]; then - echo "$5 gateway" >> /tmp/hosts + echo Ping gateway else + echo Ping ipfire FIRE=`nslookup ping.ipfire.org | tail -2 | head -1 | cut -d" " -f2`; + grep -v "gateway" /etc/hosts > /tmp/hosts echo "$FIRE gateway" >> /tmp/hosts + mv /tmp/hosts /etc/hosts fi - -mv /tmp/hosts /etc/hosts -touch /var/ipfire/red/active - -run_subdir ${rc_base}/init.d/networking/red.up/ - -[ -e "/var/ipfire/ppp/nobeeps" ] || /etc/rc.d/init.d/beep up +rm -f /tmp/gatewayping