#!/bin/ash

if [ "$#" -eq "1" ]
then
	MACHINE=$1
fi

#bind -a '#I' /net
#bind -a '#l0' /net
#cat /net/ipifc/clone
## bind the ether0 to it
#echo 'bind ether /net/ether0' > /net/ipifc/0/ctl
#exit

# ifconfig it

export cputype=amd64
export objtype=$cputype
export service=cpu
export authid=bootes
export rootdir=/root
export rootspec=''
export rootsrv=boot

#authentication='nvram=/boot/adm/nvram auth/factotum -sfactotum -S'      # -a ...
# test xyzip=(0 0 0 104.9.33)
# test fsaddr='tcp!135.$xyzip(4)^!564'
# (me network server server-addr
# wrong addresses.

# qemu is the default
me=10.0.2.15
mask=255.255.255.0
# brho: i don't know what exactly 'remote' is supposed to be, but that is
# the third argument processed by adding to an ipifc.  if we pass nothing,
# it'll build 'remote' by masking me & mask.
remote=10.0.2.0
route=10.0.2.2

if [ "x$MACHINE" = "xc89" ]
then
	# c89's config.  use c96 for eth0 (.196).  if you want, we can also use
	# c97 (.197):
	# $ cat /9/net/ipifc/clone (get e.g. 2)
	# $ echo "add 169.229.49.197 255.255.255.0" > /9/net/ipifc/2/ctl
	me=169.229.49.196
	mask=255.255.255.0
	remote=169.229.49.0
	route=169.229.49.1
fi

if [ "x$MACHINE" = "xhossin" ]
then
	# brho's soda hall desktop
	me=128.32.37.46
	mask=255.255.255.0
	remote=128.32.37.0
	route=128.32.37.1
fi
#
# Post the read-only filesystem in #s/$beetroot
# and mount it on /boot so the commands in /boot/$cputype/bin
# are available to create the namespace (namespaces like to
# mount #s/boot on / and that should not be the read-only
# filesystem).
# Must set hostowner to be that of the owner of the nvram file
# before paqfs starts otherwise factotum will not be able to
# open it.
#
#/boot/echo -n sys > '#c/hostowner'
#/boot/paqfs -p -S $beetroot -m /boot -q /boot/$beetroot
#cd /boot/$cputype/bin
bind -b '#c' /dev
#bind '#d' /fd
#bind -c '#e' /env
bind -b '#p' /proc
#bind -b -c '#s' /srv
bind -b '#s' /srv

#
# Configure the networks.
#
bind -a '#I' /net
bind -a '#l0' /net

# note: dhcp is possible, just not done yet.
#get an instance of a network stack
i=`cat /net/ipifc/clone`
# bind the ether0 to it
echo "bind ether /net/ether0 " > /net/ipifc/$i/ctl
# ifconfig it
echo "add $me $mask $remote" > /net/ipifc/$i/ctl
echo "add 0 0 $route" > /net/iproute
echo I am $me, default route $route

i=`cat /net/ipifc/clone`
echo "bind loopback /dev/null " > /net/ipifc/$i/ctl
echo "add 127.0.0.1 255.0.0.0 127.0.0.0 " > /net/ipifc/$i/ctl
