#!/bin/sh

DAEMON=/usr/sbin/connmand
PIDFILE=/var/run/connmand.pid
DESC="Connection Manager"

if [ -f /etc/default/connman ] ; then
	. /etc/default/connman
fi

nfsroot=0

exec 9<&0 < /proc/mounts
while read dev mtpt fstype rest; do
	if test $mtpt = "/" ; then
		case $fstype in
		    nfs | nfs4)
			nfsroot=1
			break
			;;
		    *)
			;;
		esac
	fi
done

do_start() {

	str1=$(cat /proc/cmdline)
	str2="calibration="
	result1=$(echo $str1 | grep "${str2}")

	if [ "$result1" != "" ];then
		echo "enter the calibration"
		exit 0
	else
		EXTRA_PARAM=""
		if test $nfsroot -eq 1 ; then
			NET_DEVS=`cat /proc/net/dev | sed -ne 's/^\([a-zA-Z0-9 ]*\):.*$/\1/p'`
			NET_ADDR=`cat /proc/cmdline | sed -ne 's/^.*ip=\([^ :]*\).*$/\1/p'`

			if [ ! -z "$NET_ADDR" ]; then
				if [ "$NET_ADDR" = dhcp ]; then
					ethn=`ifconfig | grep "^eth" | sed -e "s/\(eth[0-9]\)\(.*\)/\1/"`
					if [ ! -z "$ethn" ]; then
						EXTRA_PARAM="-I $ethn"
					fi
				else
					for i in $NET_DEVS; do
						ADDR=`ifconfig $i | sed 's/addr://g' | sed -ne 's/^.*inet \([0-9.]*\) .*$/\1/p'`
						if [ "$NET_ADDR" = "$ADDR" ]; then
							EXTRA_PARAM="-I $i"
							break
						fi
					done
				fi
			fi
		fi
		if [ -f @DATADIR@/connman/wired-setup ] ; then
				. @DATADIR@/connman/wired-setup
		fi
		$DAEMON $EXTRA_PARAM -n -d &
	fi
}

do_stop() {
	start-stop-daemon --stop --name connmand --quiet
}

case "$1" in
  start)
	echo "Starting $DESC"
	do_start
	;;
  stop)
	echo "Stopping $DESC"
	do_stop
	;;
  restart|force-reload)
	echo "Restarting $DESC"
	do_stop
	sleep 1
	do_start
	;;
  *)
	echo "Usage: $0 {start|stop|restart|force-reload}" >&2
	exit 1
	;;
esac

exit 0
