123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- #!/bin/sh
- [ "$IFACE" == "hso0" ] || exit 0
- TTY=${IF_HSO_DEVICE:-/dev/ttyHS0}
- # wait for card to initialize
- COUNT=0
- while [ $((COUNT++)) -lt 20 ]; do
- [ -c "$TTY" ] && break
- [ $COUNT -eq 20 ] && {
- logger "$0: '$TTY' not found"
- exit 1
- }
- sleep 1
- done
- if [ "$IF_PIN" ]; then
- COMGTPIN="$IF_PIN" comgt -d "$TTY" PIN
- fi
- if [ "$IF_APN" ]; then
- COMGTAPN="$IF_APN" comgt -d "$TTY" APN
- fi
- # only run once!
- [ -f /tmp/hso-connect ] && exit 0
- while :
- do
- # get connection status
- STATUS=$(comgt -s -d "$TTY" /etc/comgt/hsostatus.comgt |
- tr -d " " |
- grep -v ^$ |
- cut -d , -f 2)
- # dial if connection status is disabled
- if [ "$STATUS" -eq "0" ] ; then
- comgt -s -d "$TTY" /etc/comgt/hsoconnect.comgt
- DATA=$(comgt -s -d "$TTY" /etc/comgt/hsodata.comgt)
- if [ "$?" -ne 0 ] ; then
- continue
- fi
- DATA=$(echo $DATA |
- tr -d " " |
- grep -v ^$)
- IP=$(echo $DATA | cut -d , -f 2)
- NS1=$(echo $DATA | cut -d , -f 4)
- NS2=$(echo $DATA | cut -d , -f 5)
- ip address flush dev hso0 2> /dev/null
- ip address add "$IP/32" dev hso0
- ip link set hso0 up
- def=$(ip route show |grep default | wc -l)
- [ $def -eq 1 ] && ip route del default
- ip route add default dev hso0
- echo "nameserver $NS1" > /etc/resolv.conf
- echo "nameserver $NS2" >> /etc/resolv.conf
- . /etc/rc.conf
- # get time via ntpclient if available
- [ -x /usr/sbin/ntpclient ] && ntpclient -s -h pool.ntp.org
- # get time via rdate if available
- [ -x /usr/sbin/rdate ] && rdate -nv pool.ntp.org
- # restart ntpd when enabled
- test x"${ntpd:-NO}" = x"NO" || /etc/init.d/ntpd restart
- fi
- sleep 10
- done &
- echo $! > /tmp/hso-connect
|