summaryrefslogtreecommitdiff
path: root/package/ppp/files
diff options
context:
space:
mode:
Diffstat (limited to 'package/ppp/files')
-rwxr-xr-xpackage/ppp/files/etc/ppp/ip-down2
-rw-r--r--package/ppp/files/etc/ppp/ip-down.d/01-resolver8
-rwxr-xr-xpackage/ppp/files/etc/ppp/ip-down.d/umts7
-rwxr-xr-xpackage/ppp/files/etc/ppp/ip-up2
-rw-r--r--package/ppp/files/etc/ppp/ip-up.d/01-resolver12
-rw-r--r--package/ppp/files/etc/ppp/ip-up.d/02-ntp10
-rwxr-xr-xpackage/ppp/files/etc/ppp/ip-up.d/umts7
-rw-r--r--package/ppp/files/etc/ppp/templates/pppoe1
-rw-r--r--package/ppp/files/hso.if-down12
-rw-r--r--package/ppp/files/hso.if-up66
-rwxr-xr-xpackage/ppp/files/ppp.pre-up85
11 files changed, 149 insertions, 63 deletions
diff --git a/package/ppp/files/etc/ppp/ip-down b/package/ppp/files/etc/ppp/ip-down
index 334bcb885..a4756b768 100755
--- a/package/ppp/files/etc/ppp/ip-down
+++ b/package/ppp/files/etc/ppp/ip-down
@@ -1,6 +1,4 @@
#!/bin/sh
-[ -z "$6" ] || env -i ACTION="ifdown" INTERFACE="$6" PROTO=ppp /sbin/hotplug "iface"
-
[ -d /etc/ppp/ip-down.d ] && {
for SCRIPT in /etc/ppp/ip-down.d/*
do
diff --git a/package/ppp/files/etc/ppp/ip-down.d/01-resolver b/package/ppp/files/etc/ppp/ip-down.d/01-resolver
new file mode 100644
index 000000000..78eaea035
--- /dev/null
+++ b/package/ppp/files/etc/ppp/ip-down.d/01-resolver
@@ -0,0 +1,8 @@
+#!/bin/sh
+if [ -n "$USEPEERDNS" -a -f /etc/ppp/resolv.conf ]; then
+ if [ -f /etc/ppp/resolv.prev ]; then
+ cp -f /etc/ppp/resolv.prev /etc/resolv.conf
+ else
+ rm -f /etc/resolv.conf
+ fi
+fi
diff --git a/package/ppp/files/etc/ppp/ip-down.d/umts b/package/ppp/files/etc/ppp/ip-down.d/umts
deleted file mode 100755
index 6c812a782..000000000
--- a/package/ppp/files/etc/ppp/ip-down.d/umts
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-[ "$IF_USE_TEMPLATE" == "umts" ] || exit 0
-
-# enable bit 3, disable bit 4 - i.e. UMTS-LED from blue to green
-LED=$(cat /proc/sys/diag)
-echo $(((LED | 16) ^ 16 | 8)) > /proc/sys/diag
diff --git a/package/ppp/files/etc/ppp/ip-up b/package/ppp/files/etc/ppp/ip-up
index 34b4b50e1..2ccefc01c 100755
--- a/package/ppp/files/etc/ppp/ip-up
+++ b/package/ppp/files/etc/ppp/ip-up
@@ -1,6 +1,4 @@
#!/bin/sh
-[ -z "$6" ] || env -i ACTION="ifup" INTERFACE="$6" PROTO=ppp /sbin/hotplug "iface"
-
[ -d /etc/ppp/ip-up.d ] && {
for SCRIPT in /etc/ppp/ip-up.d/*
do
diff --git a/package/ppp/files/etc/ppp/ip-up.d/01-resolver b/package/ppp/files/etc/ppp/ip-up.d/01-resolver
new file mode 100644
index 000000000..0a980bde6
--- /dev/null
+++ b/package/ppp/files/etc/ppp/ip-up.d/01-resolver
@@ -0,0 +1,12 @@
+#!/bin/sh
+if [ -n "$USEPEERDNS" -a -f /etc/ppp/resolv.conf ]; then
+ rm -f /etc/ppp/resolv.prev
+ if [ -f /etc/resolv.conf ]; then
+ cp /etc/resolv.conf /etc/ppp/resolv.prev
+ grep domain /etc/ppp/resolv.prev > /etc/resolv.conf
+ grep search /etc/ppp/resolv.prev >> /etc/resolv.conf
+ cat /etc/ppp/resolv.conf >> /etc/resolv.conf
+ else
+ cp /etc/ppp/resolv.conf /etc
+ fi
+fi
diff --git a/package/ppp/files/etc/ppp/ip-up.d/02-ntp b/package/ppp/files/etc/ppp/ip-up.d/02-ntp
new file mode 100644
index 000000000..ac25dd567
--- /dev/null
+++ b/package/ppp/files/etc/ppp/ip-up.d/02-ntp
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+. /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
diff --git a/package/ppp/files/etc/ppp/ip-up.d/umts b/package/ppp/files/etc/ppp/ip-up.d/umts
deleted file mode 100755
index 0c18970e0..000000000
--- a/package/ppp/files/etc/ppp/ip-up.d/umts
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-[ "$IF_USE_TEMPLATE" == "umts" ] || exit 0
-
-# enable bit 4 i.e. UMTS-LED blue
-LED=$(cat /proc/sys/diag)
-echo $((LED | 16)) > /proc/sys/diag
diff --git a/package/ppp/files/etc/ppp/templates/pppoe b/package/ppp/files/etc/ppp/templates/pppoe
index 2ad285ede..de5dd3bef 100644
--- a/package/ppp/files/etc/ppp/templates/pppoe
+++ b/package/ppp/files/etc/ppp/templates/pppoe
@@ -4,6 +4,7 @@ usepeerdns
lcp-echo-interval 10
lcp-echo-failure 3
#IDLEOPTIONS#
+#NETWORKOPTIONS#
user #USERNAME#
password #PASSWORD#
#DEVICE#
diff --git a/package/ppp/files/hso.if-down b/package/ppp/files/hso.if-down
new file mode 100644
index 000000000..6e4b4d655
--- /dev/null
+++ b/package/ppp/files/hso.if-down
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+[ "$IFACE" == "hso0" ] || exit 0
+
+[ -f /tmp/hso-connect ] || exit 0
+
+PID=$(cat /tmp/hso-connect)
+ps | grep "$PID" | grep -q hso-connect.sh && kill "$PID"
+comgt -s -d /dev/ttyHS0 /etc/comgt/hsodisconnect.comgt
+rm -f /tmp/hso-connect
+ip address flush hso0
+ip link set hso0 down
diff --git a/package/ppp/files/hso.if-up b/package/ppp/files/hso.if-up
new file mode 100644
index 000000000..d08beda31
--- /dev/null
+++ b/package/ppp/files/hso.if-up
@@ -0,0 +1,66 @@
+#!/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
diff --git a/package/ppp/files/ppp.pre-up b/package/ppp/files/ppp.pre-up
index c83a09177..7f28f32da 100755
--- a/package/ppp/files/ppp.pre-up
+++ b/package/ppp/files/ppp.pre-up
@@ -19,6 +19,9 @@ if [ "$IF_PPP_MTU" -gt 0 ] ; then
NETWORKOPTIONS="mtu $IF_PPP_MTU\nmru $IF_PPP_MTU"
fi
+[ "$IF_PPP_VPI" ] || IF_PPP_VPI=1
+[ "$IF_PPP_VCI" ] || IF_PPP_VCI=32
+
REPLACE="
s,#IDLEOPTIONS#,$IDLEOPTIONS,
s,#ENCAPS#,$IF_PPP_ENCAPS,
@@ -33,39 +36,40 @@ REPLACE="
sed "$REPLACE" < /etc/ppp/templates/$IF_USE_TEMPLATE > /etc/ppp/peers/$IF_PROVIDER
-[ "$IF_PPP_ENCAPS" ] || encap=0
-[ "$IF_PPP_PAYLOAD" ] || payload=1
-[ "$IF_PPP_VPI" ] || $IF_PPP_VPI=1
-[ "$IF_PPP_VCI" ] || $IF_PPP_VCI=32
-
-case "$IF_PPP_PAYLOAD" in
-bridged)
- payload=1
- ;;
-routed)
- payload=0
- ;;
-*)
- echo "Wrong payload, use either bridged or routed"
- exit 1
+case "$IF_PPP_DEVICE" in
+eth*)
+ ip link set up dev $IF_PPP_DEVICE
;;
-esac
+nas*)
+ [ "$IF_PPP_ENCAPS" ] || encap=0
+ [ "$IF_PPP_PAYLOAD" ] || payload=1
+
+ case "$IF_PPP_PAYLOAD" in
+ bridged)
+ payload=1
+ ;;
+ routed)
+ payload=0
+ ;;
+ *)
+ echo "Wrong payload, use either bridged or routed"
+ exit 1
+ ;;
+ esac
-case "$IF_PPP_ENCAPS" in
-llc)
- encap=0
- ;;
-vc)
- encap=1
- ;;
-*)
- echo "Wrong Encapsulation use either llc or vc"
- exit 1
- ;;
-esac
+ case "$IF_PPP_ENCAPS" in
+ llc)
+ encap=0
+ ;;
+ vc)
+ encap=1
+ ;;
+ *)
+ echo "Wrong Encapsulation use either llc or vc"
+ exit 1
+ ;;
+ esac
-case "$IF_PPP_DEVICE" in
-nas*)
count=$(echo $IF_PPP_DEVICE|sed -e "s/nas//")
br2684ctl -b -c $count -e $encap -p $payload -a $IF_PPP_VPI.$IF_PPP_VCI
ip link set up dev $IF_PPP_DEVICE
@@ -74,10 +78,6 @@ esac
case "$IF_USE_TEMPLATE" in
umts)
- # set UMTS-LED to green (bit 3)
- LED=$(cat /proc/sys/diag)
- echo $((LED | 8)) > /proc/sys/diag
-
# wait for card to initialize
COUNT=0
while [ $((COUNT++)) -lt 20 ]; do
@@ -93,27 +93,22 @@ umts)
comgt -s /etc/comgt/waitready.comgt -d $IF_PPP_DEVICE || exit 1
# set pincode
- if [ "$IF_UMTS_PINCODE" ]; then
- COMGTPIN="$IF_UMTS_PINCODE" comgt PIN -d $IF_PPP_DEVICE || ERROR=1
+ if [ "$IF_PIN" ]; then
+ COMGTPIN="$IF_PIN" comgt PIN -d $IF_PPP_DEVICE || exit 1
fi
# set APN
- COMGTAPN="$IF_UMTS_APN" comgt APN -d $IF_PPP_DEVICE || ERROR=1
+ COMGTAPN="$IF_APN" comgt APN -d $IF_PPP_DEVICE || exit 1
# set umts/gprs mode if available (Option cards only)
- case "$IF_UMTS_MODE" in
+ case "$IF_MODE" in
gprs_only) comgt 2G -d $IF_PPP_DEVICE ;;
umts_only) comgt 3G -d $IF_PPP_DEVICE ;;
umts_first) comgt 3G2G -d $IF_PPP_DEVICE ;;
"") ;;
- *) echo "unknown umts-mode, exiting"
- ERROR=1
+ *) echo "unknown mode, exiting"
+ exit 1
;;
esac
-
- if [ "$ERROR" == "1" ]; then
- echo "$LED" > /proc/sys/diag
- exit 1
- fi
;;
esac