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-up15
11 files changed, 118 insertions, 24 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 9f82aa98c..7f28f32da 100755
--- a/package/ppp/files/ppp.pre-up
+++ b/package/ppp/files/ppp.pre-up
@@ -37,6 +37,9 @@ REPLACE="
sed "$REPLACE" < /etc/ppp/templates/$IF_USE_TEMPLATE > /etc/ppp/peers/$IF_PROVIDER
case "$IF_PPP_DEVICE" in
+eth*)
+ ip link set up dev $IF_PPP_DEVICE
+ ;;
nas*)
[ "$IF_PPP_ENCAPS" ] || encap=0
[ "$IF_PPP_PAYLOAD" ] || payload=1
@@ -90,21 +93,21 @@ 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
;;