Gentoo Archives: gentoo-commits

From: "Bernard Cafarelli (voyageur)" <voyageur@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in net-misc/nxserver-freenx/files: nxserver-freenx-0.7.3-roundrobin.patch
Date: Mon, 25 Aug 2008 18:36:10
Message-Id: E1KXgv9-0003zK-2n@stork.gentoo.org
1 voyageur 08/08/25 18:36:07
2
3 Added: nxserver-freenx-0.7.3-roundrobin.patch
4 Log:
5 Fix round-robin loadbalance, patch from upstream SVN, thanks to Simon Gao <gao@×××××××××××.com> in bug #235204
6 (Portage version: 2.2_rc8/cvs/Linux 2.6.26-gentoo x86_64)
7
8 Revision Changes Path
9 1.1 net-misc/nxserver-freenx/files/nxserver-freenx-0.7.3-roundrobin.patch
10
11 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/net-misc/nxserver-freenx/files/nxserver-freenx-0.7.3-roundrobin.patch?rev=1.1&view=markup
12 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/net-misc/nxserver-freenx/files/nxserver-freenx-0.7.3-roundrobin.patch?rev=1.1&content-type=text/plain
13
14 Index: nxserver-freenx-0.7.3-roundrobin.patch
15 ===================================================================
16 --- trunk/freenx-server/nxserver 2008/08/22 00:44:43 580
17 +++ trunk/freenx-server/nxserver 2008/08/25 03:28:15 612
18 @@ -1192,7 +1192,7 @@
19 # Lock held
20
21 SERVER_LB_NR=$(cat $NX_SESS_DIR/round-robin 2>/dev/null)
22 - let SERVER_LB_NR=(SERVER_LB_NR+1) % SERVER_LB_NR_OF_HOSTS
23 + let SERVER_LB_NR=(SERVER_LB_NR+1)%SERVER_LB_NR_OF_HOSTS
24 echo $SERVER_LB_NR >$NX_SESS_DIR/round-robin
25
26 # Exit critical section
27 @@ -1961,71 +1961,71 @@
28 session_history "$user" "$sessid"
29 }
30
31 -cmd_terminate()
32 +cmd_execute()
33 {
34 - CMD_PARAMS=$(cmd_parse_3_params "$2")
35 - [ -z "$CMD_PARAMS" ] && exit 1
36 - for i in $CMD_PARAMS;
37 + cmd_host="$1"
38 + cmd_user="$2"
39 + cmd_cmd="$3"
40 +
41 + if [ "$ENABLE_USERMODE_AUTHENTICATION" = "1" ]
42 + then
43 + sh -c "$cmd_cmd"
44 + elif [ "$cmd_host" = "127.0.0.1" -o "$cmd_host" = "localhost" ]
45 + then
46 + su - "$cmd_user" -c "$cmd_cmd"
47 + else
48 + ssh "$cmd_host" su - "$cmd_user" -c "'$cmd_cmd'"
49 + fi
50 +}
51 +
52 +cmd_terminate_or_send()
53 +{
54 + CMD="$1"
55 +
56 + if [ "$CMD" = "--broadcast" ]
57 + then
58 + CMD_PARAMS=$(session_find_all)
59 + [ -z "$CMD_PARAMS" ] && cmd_abort "Error: No running session could be found."
60 + else
61 + CMD_PARAMS=$(cmd_parse_3_params "$2")
62 + [ -z "$CMD_PARAMS" ] && exit 1
63 + shift
64 + fi
65 + shift
66 +
67 + for i in $CMD_PARAMS
68 do
69 CMDLINE=$(session_get_cmdline $i)
70 cmd_sessionid=$(getparam sessionId)
71 + cmd_display=$(getparam display)
72 cmd_user=$(getparam userName)
73 cmd_type=$(getparam type)
74 cmd_status=$(getparam status)
75 + cmd_host=$(getparam host)
76
77 # is it a "good" session?
78 - case "$1" in
79 + case "$CMD" in
80 --suspend)
81 if [ "$cmd_status" = "Running" ] && stringinstring "unix-" "$cmd_type"
82 then
83 - echo "sessionid=$cmd_sessionid" | su - "$cmd_user" -c "$PATH_BIN/nxnode --suspend"
84 + echo "sessionid=$cmd_sessionid" | cmd_execute "$cmd_host" "$cmd_user" "$PATH_BIN/nxnode --suspend"
85 fi
86 ;;
87 --terminate)
88 - echo "sessionid=$cmd_sessionid" | su - "$cmd_user" -c "$PATH_BIN/nxnode --terminate"
89 + echo "sessionid=$cmd_sessionid" | cmd_execute "$cmd_host" "$cmd_user" "$PATH_BIN/nxnode --terminate"
90 ;;
91 --force-terminate)
92 - echo "sessionid=$cmd_sessionid" | su - "$cmd_user" -c "$PATH_BIN/nxnode --terminate"
93 + echo "sessionid=$cmd_sessionid" | cmd_execute "$cmd_host" "$cmd_user" "$PATH_BIN/nxnode --terminate"
94 session_close $cmd_sessionid
95 ;;
96 - esac
97 - done
98 -
99 -}
100 -
101 -cmd_send()
102 -{
103 - if [ "$1" = "--broadcast" ]
104 - then
105 - CMD_PARAMS=$(session_find_all)
106 - [ -z "$CMD_PARAMS" ] && cmd_abort "Error: No running session could be found."
107 - else
108 - CMD_PARAMS=$(cmd_parse_3_params "$2")
109 - [ -z "$CMD_PARAMS" ] && exit 1
110 - shift
111 - fi
112 - shift
113 - for i in $CMD_PARAMS;
114 - do
115 - CMDLINE=$(session_get_cmdline $i)
116 - cmd_display=$(getparam display)
117 - cmd_user=$(getparam userName)
118 - cmd_type=$(getparam type)
119 - cmd_status=$(getparam status)
120 - cmd_host=$(getparam host)
121 -
122 - # is it a "good" session?
123 - if [ "$cmd_status" = "Running" ] && stringinstring "unix-" "$cmd_type"
124 - then
125 - if [ "$cmd_host" = "127.0.0.1" -o "$cmd_host" = "localhost" ]
126 + --send|--broadcast)
127 + # is it a "good" session?
128 + if [ "$cmd_status" = "Running" ] && stringinstring "unix-" "$cmd_type"
129 then
130 - su - "$cmd_user" -c "$PATH_BIN/nxdialog --dialog ok --caption \"NX Administrator Message\" --message \"$@\" -display \":$cmd_display\" &"
131 - else
132 - ssh $cmd_host su - "$cmd_user" -c "'$PATH_BIN/nxdialog --dialog ok --caption \"NX Administrator Message\" --message \"$@\" -display \":$cmd_display\" &'"
133 + cmd_execute "$cmd_host" "$cmd_user" "$PATH_BIN/nxdialog --dialog ok --caption \"NX Administrator Message\" --message \"$@\" -display \":$cmd_display\" &"
134 fi
135 - fi
136 + esac
137 done
138 - #nxnode_start --send "$CMD_PARAMS"
139 }
140
141 #
142 @@ -2099,13 +2099,13 @@
143 cmd_history "$@"
144 ;;
145 --terminate|--suspend|--force-terminate)
146 - cmd_terminate "$@"
147 + cmd_terminate_or_send "$@"
148 ;;
149 --cleanup)
150 - cmd_terminate "--force-terminate" "*"
151 + cmd_terminate_or_send "--force-terminate" "*"
152 ;;
153 --send|--broadcast)
154 - cmd_send "$@"
155 + cmd_terminate_or_send "$@"
156 ;;
157 *)
158 cmd_abort "Error: Function $CMD not implemented yet."