diff options
Diffstat (limited to 'rc/bin/ipconf/lra')
| -rwxr-xr-x | rc/bin/ipconf/lra | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/rc/bin/ipconf/lra b/rc/bin/ipconf/lra new file mode 100755 index 000000000..47f575740 --- /dev/null +++ b/rc/bin/ipconf/lra @@ -0,0 +1,92 @@ +#!/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 |
