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