#!/bin/bash


export DISPLAY=:0.0
####################################################################
function Wait_X()
    {
    while ! xset -q >/dev/null  2>&1
	do
	usleep 250000
	done
	    
    return 0
    }
####################################################################
function Launch_Vnc()
    {
    while [ 1 ]
	do
	eval $X11VNC -capslock -skip_lockkeys $*
	#Only respawn for Mts2000
	[ $CFG_PLATFORM_NAME != "Mts2000" ] && break
	sleep 1
	done
    }
####################################################################

VNC_HTTP_DIR="/usr/share/x11vnc/classes/"
X11VNC="/usr/bin/x11vnc"

restart="FALSE"

[ ! -x $X11VNC ] && exit 1

if [ -f /tmp/VNC_Type.txt ]
then
   result=`cat /tmp/VNC_Type.txt`
   if [ "$result" = 1 ]
   then
      password="TRUE"
      if [ "$1" = 0 ]
      then
         restart="TRUE"
      fi
   else
      password="FALSE"
      if [ "$1" = 1 ]
      then
         restart="TRUE"
      fi
   fi
else
   restart="TRUE"
fi

if [ $restart = "TRUE" ]
then
   PID_OLD_VNC=`ps ax | grep vnc_server | head -n 1 | awk '{ print $1 }'`
   [ "$PID_OLD_VNC" != $$ ] && kill $PID_OLD_VNC
   killall x11vnc 2>/dev/null
   rm -f /tmp/VNC_Etat.txt
   rm -f /tmp/VNC_Type.txt
   DESKTOP_NAME="$(echo $CFG_PLATFORM_FRIENDLY_NAME | cut -d ' ' -f1)-$(hostname | cut -d '-' -f3)"
   if [ "$1" = 0 ]
   then
      Wait_X && Launch_Vnc -repeat -forever -nopw -overlay_nocursor -cursor arrow -shared -display :0 -repeat -httpdir $VNC_HTTP_DIR -desktop \"$DESKTOP_NAME\" &
   else
      Wait_X && Launch_Vnc -repeat -forever -rfbauth /root/.vnc/passwd -nopw -overlay_nocursor -cursor arrow -shared -display :0 -repeat -httpdir $VNC_HTTP_DIR -desktop \"$DESKTOP_NAME\" &
   fi
   echo "$1">/tmp/VNC_Type.txt
fi

