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

93 lines
1.5 KiB
Bash
Executable file

#!/bin/rc
# on hook and initialize
fn initfn {
dial/drain
dial/at -q -t 5 zh0
}
# dial telephone number
fn dialfn {
dial/drain
dial/at -q -t 60 dt^$1
}
# process options
for(i in $*){
switch($i){
case '-P'
primary=-P
}
}
# the following can be inherited
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 # baud rate
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 $telno )
sleep 30
if( ! dial/expect -it 60 'username:' ){
echo lra: can''t connect >[1=2]
exit connect
}
dial/pass
if( ! dial/expect -it 60 'password:' ){
echo lra: can''t connect >[1=2]
exit connect
}
dial/pass
if( ! dial/expect -t 60 'telnet:' ){
echo lra: can''t connect >[1=2]
exit connect
}
echo ppp
echo connected to lra >[1=2]
# start ppp
ip/ppp $primary -f
} < $dev > $dev
# supply unknowns with inside addresses
if( ! grep -s 'auth=' /net/ndb){
echo ' auth=135.104.9.7'>>/net/ndb
echo ' authdom=cs.bell-labs.com'>>/net/ndb
}
if( ! grep -s 'ntp=' /net/ndb)
echo ' ntp=135.104.9.2'>>/net/ndb
if( ! grep -s 'dns=' /net/ndb){
echo ' dns=135.104.8.38'>>/net/ndb
echo ' dns=135.104.70.11'>>/net/ndb
}
# start dns if it isn't already going
if(! test -e /srv/dns )
ndb/dns -r