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." |