plan9fox/rc/bin/ipconf/theworld
2011-03-30 18:38:15 +00:00

77 lines
1.2 KiB
Bash
Executable file

#!/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