X-Git-Url: http://git.ipfire.org/?p=people%2Fpmueller%2Fipfire-2.x.git;a=blobdiff_plain;f=src%2Fppp%2Fip-up;h=fdd204b93cd402dea5359b1d5465a9263fdd10f5;hp=0f32820c08c390140423e95ec49672d2ea877a75;hb=d6d19d9280b1232629ed21643b2646e98d01fcaf;hpb=5fbe004ee55f667ce8c0a7d49edaae6cba826144 diff --git a/src/ppp/ip-up b/src/ppp/ip-up index 0f32820c08..fdd204b93c 100644 --- a/src/ppp/ip-up +++ b/src/ppp/ip-up @@ -32,8 +32,16 @@ if [ "$DNS" == "Automatic" ]; then echo -n "$MS_DNS1" > /var/ipfire/red/dns1 echo -n "$MS_DNS2" > /var/ipfire/red/dns2 else - echo -n "$PRIMARY_DNS" > /var/ipfire/red/dns1 - echo -n "$SECONDARY_DNS" > /var/ipfire/red/dns2 + if [ "$PRIMARY_DNS" == "10.11.12.13" ]; then + echo -n "$DNS1" > /var/ipfire/red/dns1 + else + echo -n "$PRIMARY_DNS" > /var/ipfire/red/dns1 + fi + if [ "$SECONDARY_DNS" == "10.11.12.14" ]; then + echo -n "$DNS2" > /var/ipfire/red/dns2 + else + echo -n "$SECONDARY_DNS" > /var/ipfire/red/dns2 + fi fi else echo -n "$DNS1" > /var/ipfire/red/dns1 @@ -43,12 +51,33 @@ 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 -mv /tmp/hosts /etc/hosts - touch /var/ipfire/red/active +/sbin/ip route replace default via ${IPREMOTE} dev ppp0 run_subdir ${rc_base}/init.d/networking/red.up/ +#Check if gateway has answerd to ping, if not replace with ping.ipfire.org +TEST=`/usr/bin/ping -c 2 $5 2>/dev/null | tail -2 | head -1 | cut -d"," -f2`; + +grep -v -E "\" /etc/hosts > /tmp/hosts + +if [ "$TEST" == " 2 received" ]; then + #ping the ppp-gateway + echo "$5 gateway" >> /tmp/hosts +else + #no answer + HOST=`host ping.ipfire.org`; + FIRE=`echo $HOST | cut -d" " -f4`; + CHK=`echo $HOST | cut -d" " -f3`; + if [ "$CHK" == "address" ]; then + #use ping.ipfire.org + echo "$FIRE gateway" >> /tmp/hosts + else + #DNS lookup failed use direct ip + echo "178.63.73.246 gateway" >> /tmp/hosts + fi +fi +mv /tmp/hosts /etc/hosts + [ -e "/var/ipfire/ppp/nobeeps" ] || /etc/rc.d/init.d/beep up +