| 1 |
#!/bin/sh |
| 2 |
|
| 3 |
[ "$IFACE" == "hso0" ] || exit 0 |
| 4 |
|
| 5 |
TTY=${IF_HSO_DEVICE:-/dev/usb/tth/0} |
| 6 |
[ -c "$TTY" ] || exit 0 |
| 7 |
|
| 8 |
if [ "$IF_UMTS_PINCODE" ]; then |
| 9 |
COMGTPIN="$IF_UMTS_PINCODE" comgt -d "$TTY" PIN |
| 10 |
fi |
| 11 |
|
| 12 |
if [ "$IF_UMTS_APN" ]; then |
| 13 |
COMGTAPN="$IF_UMTS_APN" comgt -d "$TTY" APN |
| 14 |
fi |
| 15 |
|
| 16 |
if [ "$IF_HSO_USERNAME" ]; then |
| 17 |
USER="$IF_HSO_USERNAME" PASS="${IF_HSO_PASSWORD}" comgt -s -d "$TTY" /etc/comgt/hsoauth.comgt |
| 18 |
fi |
| 19 |
|
| 20 |
# only run once! |
| 21 |
[ -f /tmp/hso-connect ] && exit 0 |
| 22 |
|
| 23 |
while : |
| 24 |
do |
| 25 |
# get connection status |
| 26 |
STATUS=$(comgt -s -d "$TTY" /etc/comgt/hsostatus.comgt | |
| 27 |
tr -d " " | |
| 28 |
grep -v ^$ | |
| 29 |
cut -d , -f 2) |
| 30 |
# dial if connection status is disabled |
| 31 |
if [ "$STATUS" -eq "0" ] ; then |
| 32 |
comgt -s -d "$TTY" /etc/comgt/hsoconnect.comgt |
| 33 |
DATA=$(comgt -s -d "$TTY" /etc/comgt/hsodata.comgt) |
| 34 |
if [ "$?" -ne 0 ] ; then |
| 35 |
continue |
| 36 |
fi |
| 37 |
DATA=$(echo $DATA | |
| 38 |
tr -d " " | |
| 39 |
grep -v ^$) |
| 40 |
IP=$(echo $DATA | cut -d , -f 2) |
| 41 |
NS1=$(echo $DATA | cut -d , -f 4) |
| 42 |
NS2=$(echo $DATA | cut -d , -f 5) |
| 43 |
ip address flush dev hso0 2> /dev/null |
| 44 |
ip address add "$IP/32" dev hso0 |
| 45 |
ip link set hso0 up |
| 46 |
ip route add default dev hso0 |
| 47 |
echo "nameserver $NS1" > /tmp/resolv.conf |
| 48 |
echo "nameserver $NS2" >> /tmp/resolv.conf |
| 49 |
fi |
| 50 |
sleep 10 |
| 51 |
done & |
| 52 |
|
| 53 |
echo $! > /tmp/hso-connect |