Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 235204
Collapse All | Expand All

(-)trunk/freenx-server/nxserver (-47 / +47 lines)
Lines 1192-1198 Link Here
1192
	# Lock held
1192
	# Lock held
1193
1193
1194
	SERVER_LB_NR=$(cat $NX_SESS_DIR/round-robin 2>/dev/null)
1194
	SERVER_LB_NR=$(cat $NX_SESS_DIR/round-robin 2>/dev/null)
1195
	let SERVER_LB_NR=(SERVER_LB_NR+1) % SERVER_LB_NR_OF_HOSTS
1195
	let SERVER_LB_NR=(SERVER_LB_NR+1)%SERVER_LB_NR_OF_HOSTS
1196
	echo $SERVER_LB_NR >$NX_SESS_DIR/round-robin
1196
	echo $SERVER_LB_NR >$NX_SESS_DIR/round-robin
1197
1197
1198
	# Exit critical section
1198
	# Exit critical section
Lines 1961-2031 Link Here
1961
	session_history "$user" "$sessid"
1961
	session_history "$user" "$sessid"
1962
}
1962
}
1963
1963
1964
cmd_terminate()
1964
cmd_execute()
1965
{
1965
{
1966
	CMD_PARAMS=$(cmd_parse_3_params "$2")
1966
	cmd_host="$1"
1967
	[ -z "$CMD_PARAMS" ] && exit 1
1967
	cmd_user="$2"
1968
	for i in $CMD_PARAMS;
1968
	cmd_cmd="$3"
1969
1970
	if [ "$ENABLE_USERMODE_AUTHENTICATION" = "1" ]
1971
	then
1972
		sh -c "$cmd_cmd"
1973
	elif [ "$cmd_host" = "127.0.0.1" -o "$cmd_host" = "localhost" ]
1974
	then
1975
		su - "$cmd_user" -c "$cmd_cmd"
1976
	else
1977
		ssh "$cmd_host" su - "$cmd_user" -c "'$cmd_cmd'"
1978
	fi
1979
}
1980
1981
cmd_terminate_or_send()
1982
{
1983
	CMD="$1"
1984
1985
	if [ "$CMD" = "--broadcast" ]
1986
	then
1987
		CMD_PARAMS=$(session_find_all)
1988
		[ -z "$CMD_PARAMS" ] && cmd_abort "Error: No running session could be found."
1989
	else
1990
		CMD_PARAMS=$(cmd_parse_3_params "$2")
1991
		[ -z "$CMD_PARAMS" ] && exit 1
1992
		shift
1993
	fi
1994
	shift
1995
1996
	for i in $CMD_PARAMS
1969
	do
1997
	do
1970
			CMDLINE=$(session_get_cmdline $i)
1998
			CMDLINE=$(session_get_cmdline $i)
1971
			cmd_sessionid=$(getparam sessionId)
1999
			cmd_sessionid=$(getparam sessionId)
2000
			cmd_display=$(getparam display)
1972
			cmd_user=$(getparam userName)
2001
			cmd_user=$(getparam userName)
1973
			cmd_type=$(getparam type)
2002
			cmd_type=$(getparam type)
1974
			cmd_status=$(getparam status)
2003
			cmd_status=$(getparam status)
2004
			cmd_host=$(getparam host)
1975
2005
1976
			# is it a "good" session?
2006
			# is it a "good" session?
1977
			case "$1" in 
2007
			case "$CMD" in 
1978
			--suspend)
2008
			--suspend)
1979
				if [ "$cmd_status" = "Running" ] && stringinstring "unix-" "$cmd_type"
2009
				if [ "$cmd_status" = "Running" ] && stringinstring "unix-" "$cmd_type"
1980
				then
2010
				then
1981
					echo "sessionid=$cmd_sessionid" | su - "$cmd_user" -c "$PATH_BIN/nxnode --suspend"
2011
					echo "sessionid=$cmd_sessionid" | cmd_execute "$cmd_host" "$cmd_user" "$PATH_BIN/nxnode --suspend"
1982
				fi
2012
				fi
1983
			;;
2013
			;;
1984
			--terminate)
2014
			--terminate)
1985
				echo "sessionid=$cmd_sessionid" | su - "$cmd_user" -c "$PATH_BIN/nxnode --terminate"
2015
				echo "sessionid=$cmd_sessionid" | cmd_execute "$cmd_host" "$cmd_user" "$PATH_BIN/nxnode --terminate"
1986
			;;
2016
			;;
1987
			--force-terminate)
2017
			--force-terminate)
1988
				echo "sessionid=$cmd_sessionid" | su - "$cmd_user" -c "$PATH_BIN/nxnode --terminate"
2018
				echo "sessionid=$cmd_sessionid" | cmd_execute "$cmd_host" "$cmd_user" "$PATH_BIN/nxnode --terminate"
1989
				session_close $cmd_sessionid
2019
				session_close $cmd_sessionid
1990
			;;
2020
			;;
1991
			esac
2021
			--send|--broadcast)
1992
	done
2022
				# is it a "good" session?
1993
2023
				if [ "$cmd_status" = "Running" ] && stringinstring "unix-" "$cmd_type"
1994
}
1995
1996
cmd_send()
1997
{
1998
	if [ "$1" = "--broadcast" ]
1999
	then
2000
	  CMD_PARAMS=$(session_find_all)
2001
	  [ -z "$CMD_PARAMS" ] && cmd_abort "Error: No running session could be found."
2002
	else
2003
	  CMD_PARAMS=$(cmd_parse_3_params "$2")
2004
	  [ -z "$CMD_PARAMS" ] && exit 1
2005
	  shift
2006
	fi
2007
	shift
2008
	for i in $CMD_PARAMS;
2009
	do
2010
			CMDLINE=$(session_get_cmdline $i)
2011
			cmd_display=$(getparam display)
2012
			cmd_user=$(getparam userName)
2013
			cmd_type=$(getparam type)
2014
			cmd_status=$(getparam status)
2015
			cmd_host=$(getparam host)
2016
2017
			# is it a "good" session?
2018
			if [ "$cmd_status" = "Running" ] && stringinstring "unix-" "$cmd_type"
2019
			then
2020
				if [ "$cmd_host" = "127.0.0.1" -o "$cmd_host" = "localhost" ]
2021
				then
2024
				then
2022
					su - "$cmd_user" -c "$PATH_BIN/nxdialog --dialog ok --caption \"NX Administrator Message\" --message \"$@\" -display \":$cmd_display\" &"
2025
					cmd_execute "$cmd_host" "$cmd_user" "$PATH_BIN/nxdialog --dialog ok --caption \"NX Administrator Message\" --message \"$@\" -display \":$cmd_display\" &"
2023
				else
2024
					ssh $cmd_host su - "$cmd_user" -c "'$PATH_BIN/nxdialog --dialog ok --caption \"NX Administrator Message\" --message \"$@\" -display \":$cmd_display\" &'"
2025
				fi
2026
				fi
2026
			fi
2027
			esac
2027
	done
2028
	done
2028
	#nxnode_start --send "$CMD_PARAMS"
2029
}
2029
}
2030
2030
2031
#
2031
#
Lines 2099-2111 Link Here
2099
		cmd_history "$@"
2099
		cmd_history "$@"
2100
	;;
2100
	;;
2101
	--terminate|--suspend|--force-terminate)
2101
	--terminate|--suspend|--force-terminate)
2102
		cmd_terminate "$@"
2102
		cmd_terminate_or_send "$@"
2103
	;;
2103
	;;
2104
	--cleanup)
2104
	--cleanup)
2105
		cmd_terminate "--force-terminate" "*"
2105
		cmd_terminate_or_send "--force-terminate" "*"
2106
	;;
2106
	;;
2107
	--send|--broadcast)
2107
	--send|--broadcast)
2108
		cmd_send "$@"
2108
		cmd_terminate_or_send "$@"
2109
	;;
2109
	;;
2110
	*)
2110
	*)
2111
		cmd_abort "Error: Function $CMD not implemented yet."
2111
		cmd_abort "Error: Function $CMD not implemented yet."

Return to bug 235204