#!/system/bin/sh
case $1 in
    ppp1)
	/android/bin/iptables --flush;
	/android/bin/iptables --table nat --flush;
	/android/bin/iptables --delete-chain;
	/android/bin/iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE;
	/android/bin/iptables --append FORWARD --in-interface ppp1 -j ACCEPT;
	echo 0 > /proc/sys/net/ipv4/ip_forward;
	echo 1 > /proc/sys/net/ipv4/ip_forward;
	busybox mkdir -p /data/etc/ppp
	echo $PPPD_PID > /data/etc/ppp/ppp1.pid;
	;;
    ppp0)
        /system/bin/setprop "net.interfaces.defaultroute" "gprs";
        busybox mkdir -p /data/etc/ppp
        echo $PPPD_PID > /data/etc/ppp/ppp0.pid;
        ;;
esac

# Use interface name if linkname is not available
NAME=${LINKNAME:-"$1"}

DNS1LEN=${#DNS1}
DNS2LEN=${#DNS2}
MIN_LEN=7

/system/bin/log -t pppd "DNS1LEN is $DNS1LEN;DNS2LEN is $DNS2LEN"

if [ "$DNS1" = "10.11.12.13" ] || [[ $DNS1LEN < $MIN_LEN ]] ; then
/system/bin/log -t pppd "pppd don't get a right dns addr!!"
/system/bin/setprop "net.$NAME.dns1" "8.8.8.8"
/system/bin/setprop "net.$NAME.dns2" "8.8.4.4"
else
/system/bin/log -t pppd "pppd get a right dns addr"
/system/bin/setprop "net.$NAME.dns1" "$DNS1"
if [[ $DNS2LEN < $MIN_LEN ]];then
/system/bin/log -t pppd "DNS2LEN < 7"
/system/bin/setprop "net.$NAME.dns2" "8.8.8.8" 
else
/system/bin/log -t pppd " DNS2LEN > 7"
/system/bin/setprop "net.$NAME.dns2" "$DNS2"
fi
/system/bin/setprop "net.gprs.dns1" "$DNS1"
fi

/system/bin/setprop "ril.ifname" "$NAME"

/system/bin/setprop "net.ppp0.status" "1"
/system/bin/setprop "net.$NAME.local-ip" "$IPLOCAL" 
/system/bin/setprop "net.$NAME.remote-ip" "$IPREMOTE" 
/system/bin/setprop "net.gprs.pppd_pid" "$PPPD_PID"

