#!/bin/sh

sync() {
	echo "Sync clock with $1..."
	rdate $1 2>&1
	r=$?
	[ $r -ne 0 ] && echo "Sync fail!"
	return $r
}

if [ "$1" != "" ]
then
	sync $1
	exit $?
fi

ucs="`rdcsman 0x70010 str`"
for s in $ucs
do
	sync $s
	[ $? -eq 0 ] && exit 0
done

svr="
`rdcsman 0x00070011 str`
`rdcsman 0x00070012 str`
`rdcsman 0x00070013 str`
`rdcsman 0x00070014 str`
`rdcsman 0x00070015 str`
`rdcsman 0x00070016 str`
`rdcsman 0x00070017 str`
`rdcsman 0x00070018 str`
`rdcsman 0x00070019 str`
`rdcsman 0x0007001A str`
`rdcsman 0x0007001B str`
`rdcsman 0x0007001C str`
`rdcsman 0x0007001D str`
`rdcsman 0x0007001E str`
`rdcsman 0x0007001F str`
"

#svr="
#129.6.15.28
#132.163.4.101
#64.125.78.85
#128.138.140.44
#132.163.4.102
#129.6.15.29
#69.25.96.13
#208.184.49.9
#69.222.103.98
#132.163.4.103
#64.236.96.53
#68.216.79.113
#206.246.118.250
#"

try=5

i=0
for s in $svr
do
	[ $i -lt 2 ] && t="$t $s"
	i=$(($i+1))
done
cnt=$i
svr="$svr $t"

RUN=/tmp/syncdate
if [ -f $RUN ]
then
	seq=`cat $RUN`
else
	seq=$(($RANDOM%$cnt))
fi

lmt=$(($seq+$try))
i=0
for s in $svr
do
	[ $i -ge $seq -a $i -lt $lmt ] && can="$can $s"
	i=$(($i+1))
done

for s in $can
do
	sync $s
	res=$?
	seq=$(($seq+1))
	[ $res -eq 0 ] && break
done

[ $seq -ge $cnt ] && seq=$(($seq-$cnt))
echo $seq > $RUN

exit $res
