New version, finally CVSed
authorshort <>
Tue, 8 Jan 2002 13:03:57 +0000 (13:03 +0000)
committershort <>
Tue, 8 Jan 2002 13:03:57 +0000 (13:03 +0000)
 - it no longer needs /etc/ppp/9k.chat, chat script is built-in
 - it is compatible with user custom initialization scripts in 9K

bin/ppp9k [new file with mode: 0755]

diff --git a/bin/ppp9k b/bin/ppp9k
new file mode 100755 (executable)
index 0000000..c1a6712
--- /dev/null
+++ b/bin/ppp9k
@@ -0,0 +1,63 @@
+#!/bin/sh
+#
+# $Id$
+
+# IP address for N9K, "192.168.90.1" if not provided (either here or from
+# some ~/.profile etc.)
+#NOKIA9K=
+
+# Nameserver for N9K, taken from /etc/resolv.conf if not provided
+#NS=
+
+# Serial port with attached N9K, default is /dev/ttyS1 (AKA COM2:)
+#PORT=/dev/ttyS1
+
+# Nokia baudrate, usually 19200 or 38400, default is 19200
+#NOKIABAUD=19200
+
+# No user-servicable parts below!
+
+pid="/var/run/ppp9k.pid"
+if [ -f "$pid" ];then
+       if kill -0 `head -n 1 "$pid"` 2>/dev/null;then
+               echo "Killing previous ppp9k on PID(s):" `cat "$pid"`
+               kill `cat "$pid"`
+               rm -f "$pid"
+               exit 0
+       else
+               echo "Removing state lock of PID(s):" `cat "$pid"`
+               rm -f "$pid"
+       fi
+fi
+
+IP="${NOKIA9K:-192.168.90.1}"
+NS="`grep '^nameserver' /etc/resolv.conf|head -n 1|cut -f 2 -d ' '`"
+NS="${NS:-127.0.0.1}"
+if [ "$NS" = localhost -o "${NS#127.}" != "$NS" ];then NS="`hostname -f`";fi
+PORT="${PORT:-ttyS1}"
+if [ "${PORT#*/}" = "$PORT" ];then PORT="/dev/$PORT";fi
+NOKIABAUD="${NOKIABAUD:-19200}"
+
+(trap "" HUP
+       while [ '!' -f "$pid" ];do sleep 1;done
+       me="`cat "$pid"`"
+       while :;do
+               pppd "$PORT" "$NOKIABAUD" modem lock -crtscts xonxoff :$IP asyncmap 0 ms-dns "$NS" \
+                       connect 'chat -v                       \
+                               "TIMEOUT" "86400"              \
+                               "ATZ"     "OK^M^J"             \
+                               "AT&F"    "OK^M^JOK^M^JOK^M^J" \
+                               "TIMEOUT" "20"                 \
+                               "ATD"     "CONNECT^M^J"        \
+                               ' \
+                       -ccp nodefaultroute proxyarp lcp-echo-interval 30 lcp-echo-failure 2 lcp-max-configure 30 -detach \
+                       -chap noauth "$@" &
+               echo -e "$me\n$!" >"$pid"
+               wait
+               echo "$me" >"$pid"
+               sleep 10
+       done) </dev/null &>/dev/null &
+
+he="$!"
+echo "$he" >"$pid"
+echo "Starting up: PID=$he, port=$PORT, baud=$NOKIABAUD, remoteIP=$IP, nameserver=$NS"