#!/bin/ash

NIC='0'
MAC=`cat "#ether/ether$NIC/addr"`

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

if [ -d /etc/network/local.d ]
then
	for cfg in /etc/network/local.d/*
	do
		source $cfg
	done
else
	echo '/etc/network/local.d not found'
fi

#
# Set up the initial namespace for starting networking.
#
/bin/bind -b '#cons' /dev
/bin/bind -b '#random' /dev
/bin/bind -a '#capability' /dev
/bin/bind -a '#sd' /dev
#/bin/bind '#d' /fd
#/bin/bind -c '#e' /env
/bin/bind -b '#proc' /proc
/bin/bind -b '#srv' /srv

#
# Configure the network mount point.
#
/bin/bind -a '#ip' /net
/bin/bind -a '#ether'.$NIC /net

if [ -x /bin/ipconfig ]
then
	if [ -n "$me" ]
	then
		ipconfig -g $route ether /net/ether$NIC $me $mask
	else
		# No explicit configuration; use DHCP.
		daemonize /bin/ipconfig -S ether /net/ether$NIC
	fi
	ipconfig -P loopback /dev/null 127.0.0.1
else
	if [ ! -n "$me" ]
	then
		# By default, configure for QEMU.
		# We only use qemu's setting when we don't have ipconfig so that we can
		# test ipconfig + DHCP with qemu.
		me='10.0.2.15'
		mask='255.255.255.0'
		remote='10.0.2.0'
		route='10.0.2.2'
		dns='10.0.2.3'
	fi
	#
	# Get an instance of an IP stack and bind ether$NIC to it.
	# The kernel sets errno but 'echo' doesn't return any sort of
	# error indicator.  Our busybox hacks doesn't know any better
	# and will think it was an error so direct stderr to /dev/null.
	#
	i=`cat /net/ipifc/clone`
	echo "bind ether /net/ether$NIC" >/net/ipifc/$i/ctl 2>/dev/null
	#
	# Configure the stack.
	#
	echo "add $me $mask $remote" > /net/ipifc/$i/ctl
	echo "add 0 0 $route" > /net/iproute
	echo "I am $me, default route $route"
	#
	# Configure the loopback interface.
	#
	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
fi

######### DNS Config #############

# If we used some form of static configuration, /net/ndb doesn't know about our
# DNS server.  This assumes the last contents of ndb is the IP block
if [ -n "$me" ]
then
	echo -e "\tdns=$dns" >> /net/ndb
fi
# Either way, we have DNS in ndb now, but some apps want it in resolv.conf
DNS=`grep "dns=" /net/ndb | cut -f 2 -d'='`
echo "nameserver $DNS" >> /etc/resolv.conf
# And we may have some additional search paths for resolv.conf
if [ -n "$me" ]
then
	echo "search $search" >> /etc/resolv.conf
fi
# We also can provide an etc hosts file for loopback
echo "127.0.0.1 localhost" >> /etc/hosts
# You can set HOST and then you may set FQDN, and we'll add it to etc hosts
if [ "x$HOST" != "x" ]
then
	IP=`cat /net/ipifc/0/local | cut -f 1 -d ' '`
	echo "$IP $FQDN $HOST" >> /etc/hosts
fi

daemonize /bin/cs -S
mount -a '#srv/cs' /net

# This is noisy, so it is off by default.
#echo debug > /net/cs

/bin/bind -a '#kprof' /prof

echo 'ifconfig complete'
