summaryrefslogtreecommitdiff
path: root/rc/bin/ipconf/theworld
diff options
context:
space:
mode:
Diffstat (limited to 'rc/bin/ipconf/theworld')
-rwxr-xr-xrc/bin/ipconf/theworld76
1 files changed, 76 insertions, 0 deletions
diff --git a/rc/bin/ipconf/theworld b/rc/bin/ipconf/theworld
new file mode 100755
index 000000000..b68df1979
--- /dev/null
+++ b/rc/bin/ipconf/theworld
@@ -0,0 +1,76 @@
+#!/bin/rc
+
+fn initfn {
+ dial/flush
+ echo +++
+ echo -n atzh0
+ dial/expect -q -t 5 OK
+}
+
+fn dialfn {
+ dial/flush
+ echo -n atdt^$telno^
+ dial/expect -q -t 60 CONNECT
+}
+
+# process options
+for(i in $*){
+ switch($i){
+ case '-P'
+ primary=-P
+ }
+}
+
+switch($dev){
+case ''
+ dev=/dev/eia1
+}
+switch($telno){
+case ''
+ telno=18009878722
+}
+switch($baud){
+case ''
+ baud=115200
+}
+
+{
+ # set up uart
+ if( test -e $dev^ctl ){
+ echo -n b^$baud
+ echo -n m1 # cts/rts flow control
+ echo -n q64000 # big buffer
+ echo -n n1 # nonblocking writes
+ echo -n r1 # rts on
+ echo -n d1 # dtr on
+ echo -n c1 # handup wen we lose dcd
+ } > $dev^ctl
+
+ # get the modem's attention
+ while( ! initfn )
+ sleep 1
+
+ # dial
+ while( ! dialfn )
+ sleep 30
+ echo connected to the world >[1=2]
+
+ # start ppp
+ ip/ppp $primary -f
+} < $dev > $dev
+
+# supply unknowns with outside addresses
+if( ! grep -s 'auth=' /net/ndb){
+ echo ' auth=204.178.31.3'>>/net/ndb
+ echo ' authdom=cs.bell-labs.com'>>/net/ndb
+}
+if( ! grep -s 'ntp=' /net/ndb)
+ echo ' ntp=204.178.31.2'>>/net/ndb
+if( ! grep -s 'dns=' /net/ndb){
+ echo ' dns=204.178.31.3'>>/net/ndb
+ echo ' dns=204.178.31.4'>>/net/ndb
+}
+
+# start dns if it isn't already going
+if(! test -e /srv/dns )
+ ndb/dns -r