#!/bin/bash

. /etc/functions

TRACE "Under /bin/network-init-recovery"

# bring up the ethernet; maybe should do DHCP?
ifconfig lo 127.0.0.1

network_modules="e1000 e1000e igb sfc mdio mlx4_core mlx4_en"
for module in `echo $network_modules`; do
	if [ -f /lib/modules/$module.ko ]; then
		insmod /lib/modules/$module.ko
	fi
done

if [ -e /sys/class/net/eth0 ]; then
	#Randomize eth0 MAC address of maximized boards
	if echo "$CONFIG_BOARD" | grep -q maximized; then
		ifconfig eth0 down
		echo "Generating random MAC address (might take a while)..."
		mac=$(generate_random_mac_address)
		echo "Assigning randomly generated MAC: $mac to eth0..."
		ifconfig eth0 hw ether $mac
		ifconfig eth0 up
	fi

	# Set up static IP
	if [ ! -z "$CONFIG_BOOT_STATIC_IP" ]; then
		ifconfig eth0 $CONFIG_BOOT_STATIC_IP
	#Get ip from DHCP
	elif [ -e /sbin/udhcpc ];then
		if udhcpc -T 1 -q; then
			if [ -e /sbin/ntpd ]; then
				DNS_SERVER=$(grep nameserver /etc/resolv.conf|awk -F " " {'print $2'})
				killall ntpd 2&>1 > /dev/null
		 		if ! ntpd -d -N -n -q -p $DNS_SERVER > /dev/ttyprintk; then
					if ! ntpd -d -d -N -n -q -p ntp.pool.org> /dev/ttyprintk; then
						echo "NTP sync unsuccessful." > /dev/tty0
					fi
				fi
				hwclock -w
				echo "" > /dev/tty0
				date=`date "+%Y-%m-%d %H:%M:%S %Z"`
				echo "Time: $date" > /dev/tty0
			fi
		fi		 
	fi
	
	ifconfig eth0 > /dev/ttyprintk
	
	if [ -e /bin/dropbear ]; then
		# Set up the ssh server, allow root logins and log to stderr
		if [ ! -d /etc/dropbear ]; then
			mkdir /etc/dropbear
		fi
		dropbear -B -R 2>/dev/ttyprintk
	fi
	echo  "" > /dev/tty0
	ifconfig eth0 | head -2 > /dev/tty0
fi
