03f364d167
In the installation, if you run the ndbsetup task n times (n > 1), the installed /lib/ndb/local will have n sys= entries. The problem is that ndb(8) will use the first sys= entry found, but one would expect that the last configuration in the ndbsetup task would be the active one. Remove any previous entry in ndbsetup before adding new one.
43 lines
844 B
Bash
Executable file
43 lines
844 B
Bash
Executable file
#!/bin/rc
|
|
|
|
# desc: setup network configuration
|
|
# prereq: confignet copydist
|
|
|
|
etheraddr=`{cat /net/ether0/addr >[2]/dev/null}
|
|
|
|
switch($1){
|
|
case checkready checkdone
|
|
if(~ $#etheraddr 1 && ~ $netisfrom ether && ~ $ethermethod dhcp manual && \
|
|
! grep -s $etheraddr /n/newfs/lib/ndb/local)
|
|
ndbsetup=ready
|
|
if not
|
|
ndbsetup=done
|
|
export ndbsetup
|
|
|
|
case go
|
|
echo
|
|
echo 'Setup network configuration'
|
|
echo
|
|
|
|
default=()
|
|
if(~ $#sysname 1)
|
|
default=(-d $sysname)
|
|
prompt $default 'sysname'
|
|
sysname=$rd
|
|
|
|
cp /n/newfs/lib/ndb/local /tmp/ndb.local
|
|
{
|
|
ssam 'x/^.*ether='^$etheraddr^'.*$/ d' /tmp/ndb.local
|
|
|
|
echo
|
|
switch($ethermethod){
|
|
case dhcp
|
|
echo 'sys='^$sysname 'ether='^$etheraddr
|
|
|
|
case manual
|
|
echo 'sys='^$sysname 'ether='^$etheraddr \
|
|
'ip='^$ipaddr 'ipmask='^$ipmask 'ipgw='^$gwaddr
|
|
}
|
|
echo
|
|
} >/n/newfs/lib/ndb/local
|
|
}
|