[TMG] idea of writing this paper come from FreeNX-kNX Digest, Vol 53, Issue 32 (fwd)

supat at supat.eu.org supat at supat.eu.org
Mon Jan 26 15:20:10 ICT 2009


Because freenx-knx at kde.org sent mail to me today on digest of its news.
So, I teach genetics for 30 years every semister by now.
So, it was time I have to digest my experiance in to a paper submit to 
genetic proceeding today.

This is the 1st draft I just write it in half an hour.
I expect to finish it in this week and submit pass the dead line Jan 16, 
2009 as original request.

I welcome any idea of discussion.

regards,
zxc555
==========================================

¡ÒÃÂèÍ¢éÍÁÙÅ´éÒ¹¡ÒÃÈÖ¡ÉÒà¡ÕèÂǡѺ¡ÒÃàÃÕ¹¡ÒÃÊ͹ÇÔªÒ»ÃѺ»Ãا¾Ñ¹¸ìÊѵÇì ³ 
ÁËÒÇÔ·ÂÒÅÑÂà¡ÉµÃÈÒʵÃì
Data digestion on education system in learning and teaching animal 
breeding at Kasetsart University

ÊØ¾ÑµÃì ¿éÒÃØè§ÊÒ§
Supat Faarungsang
ÀÒ¤ÇÔªÒÊѵǺÒÅ ¤³Ð à¡ÉµÃ ¡Óá¾§áʹ ÁËÒÇÔ·ÂÒÅÑÂà¡ÉµÃÈÒʵÃì Í. ¡Óá¾§áʹ ¨. ¹¤Ã»°Á 
÷óñôð
Department of Animal Science, Faculty of Agriculture Kamphangsaen, 
Kasetsart University, Kamphangsaen, Nakhon Pathom 73140
*Corresponding authors: fagrspf at yahoo.com
ABSTRACT

 	Thirty years accumulated data in learning and teaching animal 
breeding at Kasetsart university since 1979 up to 2009 were digested and 
analyzed to solve education problem in genetics.
         Random amplified polymorphic DNA (RAPD) technique was used to 
identify

¤ÓÊӤѭ : ¡ÒÃÂèÍ¢éÍÁÙÅ ¡ÒÃÈÖ¡ÉÒ »ÃѺ»Ãا¾Ñ¹¸ìÊѵÇì
Keywords: data digestion, education, animal breeding


º·¹Ó
 	Ãкº¡ÒÃÈÖ¡ÉҾѹ¸ØÈÒʵÃìà»ç¹µÑÇ¡Ó˹´ (limiting factor) 
·ÕèÊӤѭ㹤ÇÒÁÊÓàÃ稴éÒ¹¹Õé »ÃСͺ ´éÇ ó â´àÁ¹ ¤×Í ¾Ø·¸Ô¾ÔÊÑ (cognitive domain) ¨Ôµ¾ÔÊÑ 
(affective domain) áÅÐ ·Ñ¡ÉоÔÊÑ (psychomotor domain) (anonymous , 2009)

ÍØ»¡Ã³ìáÅÐÇÔ¸Õ¡ÒÃ

¡ÒÃÇÔà¤ÃÒÐËì¼Å

¼Å¡Ò÷´ÅͧáÅÐÇÔ¨Òóì

ÊÃØ»¼Å¡Ò÷´Åͧ

¡ÔµµÔ¡ÃÃÁ»ÃСÒÈ

àÍ¡ÊÒÃÍéÒ§ÍÔ§
ÊØ¾ÑµÃì ¿éÒÃØè§ÊÒ§ òõôð. 
¡ÒÃãªéàÅ¢°Ò¹ÊÒÁá¡é»Ñ­ËÒ˹èǤÇÒÁ¨Ó¤ÍÁ¾ÔÇàµÍÃì㹡ÒûÃÐàÁÔ¹¤Ø³¤èÒ·Ò§¾Ñ¹¸Ø¡ÃÃÁẺ¡ÔºÊì 
¡ÒûÃЪØÁÇÔªÒ¡ÒâͧÁËÒÇÔ·ÂÒÅÑÂà¡ÉµÃÈÒʵÃì ¤ÃÑé§·Õè óõ ó-õ ¡ØÁÀҾѹ¸ì òõôð


ÊØ¾ÑµÃì ¿éÒÃØè§ÊÒ§ áÅÐ ¨ÃÑ­ ¨Ñ¹·ÅÑ¡¢³Ò òõôø. 
ÃкºÍÕ-ÂÙ¹ÔàÇÍÃì«ÔµÕẺ¾Íà¾Õ§áÅÐÂÑè§Â×¹à¾×èÍ¡ÒÃàÃÕ¹¡ÒÃÊ͹ ÇÔªÒ»ÃѺ»Ãا¾Ñ¹¸ØìÊѵÇì. 
¡ÒûÃЪØÁÇÔªÒ¡Òþѹ¸ØÈÒʵÃì ¤ÃÑé§·Õè ñô òõôù

ÊØ¾ÑµÃì ¿éÒÃØè§ÊÒ§  òõôö. ÃкºÂÑè§Â׹㹡ÒÃÊ͹¾Ñ¹¸ØìÈÒʵÃì  ·Ò§ÍÕ-ÂÙ¹ÔàÇÍÃì«ÔµÕ 
¡ÒûÃЪØÁÇÔªÒ¡Òþѹ¸ØÈÒʵÃì ¤ÃÑé§·Õè ñó òõôö ÁËÒÇÔ·ÂÒÅѹàÃÈÇà ¨. ¾ÔɳØâÅ¡


¹ÅÔ¹Õ ÃØè§àÃ×ͧÈÃÕ áÅÐ ÊØ¾ÑµÃì ¿éÒÃØè§ÊÒ§ òõôù. 
ÇÔ¸ÕáÅÐâ»Ãá¡ÃÁʶԵԺҧ»ÃСÒÃ㹡ÒÃÈÖ¡ÉÒ»ÃÐÇѵԤÇÒÁà»ç¹ÁҢͧ¡ÅéÇÂä·Â. 
¡ÒûÃЪØÁÇÔªÒ¡ÒÃʶԵÔáÅÐʶԵԻÃÐÂØ¡µì»ÃÐ¨Ó»Õ òõôù


Anonymous. 2009. Learning Domains or Bloom's Taxonomy:    The Three Types 
of Learning http://www.nwlink.com/~Donclark/hrd/bloom.html

Faarungsang, S. 1997. Convergence of Markov Chain Monte Carlo in genetic 
evaluation. 10th genetic conference 19-21 March, 1997. Chulalongklon 
university. Bangkok.

Faarungsang, S. 2001. The roles of computer system in animal breeding. 
12th genetic conference, 2001. Kasetsart university. Bangkok.


ÀÒ¾·Õè


---------- Forwarded message ----------
Date: Mon, 26 Jan 2009 04:47:37 +0100
From: freenx-knx-request at kde.org
Reply-To: freenx-knx at kde.org
To: freenx-knx at kde.org
Subject: FreeNX-kNX Digest, Vol 53, Issue 32

Send FreeNX-kNX mailing list submissions to
 	freenx-knx at kde.org

To subscribe or unsubscribe via the World Wide Web, visit
 	https://mail.kde.org/mailman/listinfo/freenx-knx
or, via email, send a message with subject or body 'help' to
 	freenx-knx-request at kde.org

You can reach the person managing the list at
 	freenx-knx-owner at kde.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of FreeNX-kNX digest..."


________________________________________________________________
          Don't forget to check the NX Knowledge Base:
                  http://www.nomachine.com/kb/
        Please also check the FreeNX Wiki+FAQ for hints.
   http://openfacts.berlios.de/index-en.phtml?title=FreeNX_FAQ
________________________________________________________________



Today's Topics:

    1. Re: Shadow does not work inside nxagent, and keyboard does
       not work (Terje Andersen)
    2. Re: Shadow does not work inside nxagent,	and keyboard does
       not work (Mario Becroft)
    3. Collection of helpful freenx patches (Mario Becroft)
    4. Re: Shadow does not work inside nxagent,	and keyboard 	does
       not work (Marcelo Boveto Shima)
    5. Patches for some nxagent bugs (Mario Becroft)
    6. Re: Shadow does not work inside nxagent,	and keyboard 	does
       not work (Mario Becroft)
    7. Re: Collection of helpful freenx patches (Marcelo Boveto Shima)


----------------------------------------------------------------------

Message: 1
Date: Sun, 25 Jan 2009 12:53:24 +0100
From: Terje Andersen <terander at guard.zapto.org>
Subject: Re: [FreeNX-kNX] Shadow does not work inside nxagent, and
 	keyboard does not work
To: freenx-knx at kde.org
Message-ID: <20090125125324.10d50666.terander at guard.zapto.org>
Content-Type: text/plain; charset=US-ASCII

On Sun, 25 Jan 2009 23:01:07 +1300
Mario Becroft <mb at gem.win.co.nz> wrote:

> I have two problems with session shadowing using freenx and nx 3.3.0.
>
> 1. Shadowing works when I run nxclient on the Xorg server on my laptop,
> but when I run it on an nxagent display, a window opens to show the
> shadowed session, but it contains only black pixels. Clicking the mouse
> inside the window controls the session as expected. Only you can't see
> anything.
>
> 2. Even when I run nxclient on my laptop, so that the display and the
> mouse work fine, the keyboard does not work. More specifically, the caps
> lock key works, but all other keys have no effect.
>
> In all cases the original session being shadows continues to work
> correctly.
>
> Are these known problems? Any suggestions?
>

Have you enabled interactive mode on shadowing in node.conf? the only
suggestion I have... o_0

Regards,
Terje



------------------------------

Message: 2
Date: Mon, 26 Jan 2009 00:56:59 +1300
From: Mario Becroft <mb at gem.win.co.nz>
Subject: Re: [FreeNX-kNX] Shadow does not work inside nxagent,	and
 	keyboard does not work
To: User Support for FreeNX Server and kNX Client <freenx-knx at kde.org>
Message-ID: <87iqo3zjhw.fsf at server.ak.quickcircuit.co.nz>
Content-Type: text/plain; charset=us-ascii

Terje Andersen <terander at guard.zapto.org> writes:

> On Sun, 25 Jan 2009 23:01:07 +1300
> Mario Becroft <mb at gem.win.co.nz> wrote:
>
>> I have two problems with session shadowing using freenx and nx 3.3.0.
>>
>> 1. Shadowing works when I run nxclient on the Xorg server on my laptop,
>> but when I run it on an nxagent display, a window opens to show the
>> shadowed session, but it contains only black pixels. Clicking the mouse
>> inside the window controls the session as expected. Only you can't see
>> anything.
>>
>> 2. Even when I run nxclient on my laptop, so that the display and the
>> mouse work fine, the keyboard does not work. More specifically, the caps
>> lock key works, but all other keys have no effect.
>>
>> In all cases the original session being shadows continues to work
>> correctly.
>>
>> Are these known problems? Any suggestions?
>>
>
> Have you enabled interactive mode on shadowing in node.conf? the only
> suggestion I have... o_0

Yes, it is enabled, and the mouse works. I realised, however, that my
original description is not entirely correct. The keyboard does work--it
is just mapped completely wrong. Most keys have no mapping at all, but a
few keys do work. For instance, like I said, caps lock works. And I also
noticed that backspace works as the enter key!

-- 
Mario Becroft <mb at gem.win.co.nz>


------------------------------

Message: 3
Date: Mon, 26 Jan 2009 01:28:44 +1300
From: Mario Becroft <mb at gem.win.co.nz>
Subject: [FreeNX-kNX] Collection of helpful freenx patches
To: freenx-knx at kde.org
Message-ID: <87eiyrzi0z.fsf at server.ak.quickcircuit.co.nz>
Content-Type: text/plain; charset=us-ascii

Here is a collection of all the patches I am running on freenx just in
case anyone else might find them useful. Some of them, with some tidying
up, could be incorporated into freenx mainline if there is any interest.


authorization.patch

Authorisation patch. On my system, at least, nxnode fails to set up the
~/.Xauthority file correctly, because by the time it runs the xauth
command, the XAUTHORITY environment variable has already been set to
~/.nx/C-*/authority. Change the first xauth command to explicitly work
on ~/.Xauthority. Ignore the nxhost* lines or replace with your own
hostname(s) if you want to authorize connections from other than localhost.

--- /mnt/devel/mb/src/nx/freenx-server-0.7.3/nxnode     2008-08-22 12:44:43.000000000 +1200
+++ nxnode      2009-01-19 20:49:57.798514922 +1300
@@ -1254,15 +1271,19 @@

         # write xauth script file

-$COMMAND_XAUTH >/dev/null 2>&1 <<EOF
+$COMMAND_XAUTH -f $(eval echo -n ~$user)/.Xauthority >/dev/null 2>&1 <<EOF
  add localhost:$display MIT-MAGIC-COOKIE-1 $cookie
  add :$display MIT-MAGIC-COOKIE-1 $cookie
+add nxhost:$display MIT-MAGIC-COOKIE-1 $cookie
+add nxhost_n12:$display MIT-MAGIC-COOKIE-1 $cookie
  exit
  EOF

  $COMMAND_XAUTH -f "$USER_FAKE_HOME/.nx/C-$sess_id/authority" >/dev/null 2>&1 <<EOF
  add localhost:$display MIT-MAGIC-COOKIE-1 $cookie
  add :$display MIT-MAGIC-COOKIE-1 $cookie
+add nxhost:$display MIT-MAGIC-COOKIE-1 $cookie
+add nxhost_n12:$display MIT-MAGIC-COOKIE-1 $cookie
  exit
  EOF

@@ -1271,6 +1292,8 @@
  cat << EOF >"$USER_FAKE_HOME/.nx/C-$sess_id/scripts/authority"
  remove localhost:$display
  remove :$display
+remove nxhost:$display
+remove nxhost_n12:$display
  exit
  EOF


auth_timeout.patch

If the directory server is extremely highly loaded (unusual)
authentication can take too long. Increase the timeout so that nxserver
does not give up.

--- nxserver.dist       2008-09-24 03:20:08.000000000 +1200
+++ nxserver    2008-09-24 03:38:02.000000000 +1200
@@ -591,7 +591,7 @@
                         NXNODE_SLAVE_STARTED=""

                         # FIXME: Make timeout configurable
-                       while read -t 10 line <&$NX_COMMFD
+                       while read -t 30 line <&$NX_COMMFD
                         do
                                 log 6 "$line"
                                 case "$line" in



dialog.patch

Using nxclient as nxdialog is extremely slow. Make it use xdialog
instead.

--- nxdialog.dist       2008-09-24 04:21:50.000000000 +1200
+++ nxdialog    2008-09-24 04:22:01.000000000 +1200
@@ -76,9 +76,9 @@
  # This is now fixed in NXClient 3.0.0, but still people sometimes use
  # older clients.

-NXCLIENT="/usr/NX/bin/nxclient"
-[ -x "$NXCLIENT" -a "$DIALOG_TYPE" != "printer" -a "$(file -bi $NXCLIENT)" != 'application/x-shellscript' ] \
-       && exec ${NXCLIENT} "${PARAMS[@]}"
+#NXCLIENT="/usr/NX/bin/nxclient"
+#[ -x "$NXCLIENT" -a "$DIALOG_TYPE" != "printer" -a "$(file -bi $NXCLIENT)" != 'application/x-shellscript' ] \
+#      && exec ${NXCLIENT} "${PARAMS[@]}"

  # FIXME: This should be COMMAND_XDIALOG, ...



nxnode_echo_hang.patch

Fix hang in server_nxnode_echo() when the client dies or loses
connectivity. This resulted in sessions not suspending and resuming
correctly in that case.

--- nxserver.foo	2009-01-25 16:07:46.590977440 +1300
+++ nxserver	2009-01-25 21:34:29.259718601 +1300
@@ -967,8 +967,8 @@
  server_nxnode_echo()
  {
  	log 6 "server_nxnode_echo: $@"
-	[ "$SERVER_CHANNEL" = "1" ] && echo "$@"
-	[ "$SERVER_CHANNEL" = "2" ] && echo "$@" >&2
+	[ "$SERVER_CHANNEL" = "1" ] && /bin/echo "$@"
+	[ "$SERVER_CHANNEL" = "2" ] && /bin/echo "$@" >&2
  }

  server_nxnode_exit_func()


proxy_ip.patch

Backport of the proxy ip change to allow connection without encryption.

--- /mnt/devel/mb/src/nx/freenx-server-0.7.3/nxnode     2008-08-22 12:44:43.000000000 +1200
+++ nxnode      2009-01-19 20:49:57.798514922 +1300
@@ -1184,7 +1190,18 @@
                 [ -z "$userip" -a "$host" = "127.0.0.1" ] && userip="127.0.0.1"
                 [ -z "$userip" ] && userip="*"
         fi
-
+
+       # We need our own external IP
+       proxyip="$EXTERNAL_PROXY_IP"
+
+       if [ -z "$proxyip" -a -n "$host" ]
+       then
+               [ "$host" = "127.0.0.1" ] && host=$(hostname)
+               proxyip=$(ping -c1 "$host" | grep 'PING' | cut -d'(' -f2 | cut -d')' -f1)
+       fi
+
+       [ -z "$proxyip" ] && proxyip="127.0.0.1"
+
         # ok, lets make the session dir first:

         sess_id="$SERVER_NAME-$display-$uniqueid"
@@ -1316,7 +1339,7 @@
  NX> 705 Session display: $display
  NX> 703 Session type: $type
  NX> 701 Proxy cookie: $proxy_cookie
-NX> 702 Proxy IP: $userip
+NX> 702 Proxy IP: $proxyip
  NX> 706 Agent cookie: $cookie
  NX> 704 Session cache: $type
  NX> 707 SSL tunneling: $ssl_tunnel


shadow_list_username.patch

In the list of sessions available for shadowing, show the username
(helpful if you have several different users with the same session name,
or session names that do not identify the user).

--- nxserver.foo	2009-01-25 21:44:57.566626637 +1300
+++ nxserver	2009-01-25 21:56:32.517375794 +1300
@@ -334,7 +334,7 @@
  			elif [ "$4" = "shadow" ]
  			then
  				available=$(getparam status)
-				printf "%-7s %-16s %32s %8s %5s %-14s %-11s %s\n" "$(getparam display)" "$(getparam type)" "$(getparam sessionId)" "$options" "$depth" "$geom" "$available" "$(getparam sessionName) (Shadowed)" >> $TMPFILE
+				printf "%-7s %-16s %32s %8s %5s %-14s %-11s %s\n" "$(getparam display)" "$(getparam type)" "$(getparam sessionId)" "$options" "$depth" "$geom" "$available" "$(getparam sessionName) ($(getparam userName)) (Shadowed)" >> $TMPFILE
  			else
  				# only unix-* sessions can be resumed, but other session types can still be terminated
  				stringinstring "unix-" "$4" || available="N/A"



shadow_suspended_sessions.patch

Make suspended sessions available for shadowing, instead of only running
sessions.

--- nxserver.foo	2009-01-26 00:50:03.956970327 +1300
+++ nxserver	2009-01-26 00:53:02.332307685 +1300
@@ -1663,7 +1663,8 @@
  				session_list_user_suspended "$USER" "$status" "$(getparam geometry)" "$(getparam type)"
  			elif [ "$(getparam type)" = "shadow" ]
  			then
-				session_list_user_suspended ".*" "Running" "" "shadow"
+				status=$(echo "suspended,running" | sed 's/,/$|^status=/g; s/suspended/Suspended/g; s/running/Running/g')
+				session_list_user_suspended ".*" "$status" "" "shadow"
  			else
  				session_list_user "$USER" | log_tee
  			fi



superuser_session_limit.patch

Enable certain users to bypass the per-user session limit. Invokes
/usr/NX/bin/superuser with the username, which should return 0 if user
is allowed to bypass limit, otherwise 1. Useful if your user session
limit is 1, but for special users you want to allow more sessions.

--- nxserver.foo	2009-01-25 16:07:46.590977440 +1300
+++ nxserver	2009-01-25 21:34:29.259718601 +1300
@@ -1173,6 +1173,9 @@

  	if [ "$SESSION_COUNT_USER" -ge "$SESSION_USER_LIMIT" ]
  	then
+	        if /usr/NX/bin/superuser $USER ; then
+		        return 0
+		fi
  		echo_x "NX> 599 Server capacity: reached for user: $USER"
  		echo_x "NX> 500 ERROR: Last operation failed."
  		return 1


valgrind.patch

Run nxagent in memcheck for a specific user, for debugging use. Apply
patch, then change username and swap the commented and uncommented lines
to enable memcheck usage.

--- /mnt/devel/mb/src/nx/freenx-server-0.7.3/nxnode     2008-08-22 12:44:43.000000000 +1200
+++ nxnode      2009-01-19 20:49:57.798514922 +1300
@@ -540,7 +540,13 @@

                 # Start the agent

+if [ "$user" = "mb" ] ; then
+               # run valgrind for mario to test with
+               #PATH="$PATH_BIN:$PATH" /usr/bin/valgrind --log-file=/tmp/valgrind $PATH_BIN/nxagent $P $R -name "NX - $user@$SERVER_NAME:$display - $session (GPL Edition)" -option "$USER_FAKE_HOME/.nx/C-$sess_id/options" $K $G $B $FP $AGENT_EXTRA_OPTIONS_X :$display 2>&3 &
                 PATH="$PATH_BIN:$PATH" $PATH_BIN/nxagent $P $R -name "NX - $user@$SERVER_NAME:$display - $session (GPL Edition)" -option "$USER_FAKE_HOME/.nx/C-$sess_id/options" $K $G $B $FP $AGENT_EXTRA_OPTIONS_X :$display 2>&3 &
+else
+               PATH="$PATH_BIN:$PATH" $PATH_BIN/nxagent $P $R -name "NX - $user@$SERVER_NAME:$display - $session (GPL Edition)" -option "$USER_FAKE_HOME/.nx/C-$sess_id/options" $K $G $B $FP $AGENT_EXTRA_OPTIONS_X :$display 2>&3 &
+fi
         fi

         #


-- 
Mario Becroft <mb at gem.win.co.nz>


------------------------------

Message: 4
Date: Sun, 25 Jan 2009 11:17:03 -0200
From: Marcelo Boveto Shima <marceloshima at gmail.com>
Subject: Re: [FreeNX-kNX] Shadow does not work inside nxagent,	and
 	keyboard 	does not work
To: User Support for FreeNX Server and kNX Client <freenx-knx at kde.org>
Message-ID:
 	<7d3bf3160901250517s66a7ad62q140df97543a69e27 at mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

On Sun, Jan 25, 2009 at 9:56 AM, Mario Becroft <mb at gem.win.co.nz> wrote:

> Terje Andersen <terander at guard.zapto.org> writes:
>
>> On Sun, 25 Jan 2009 23:01:07 +1300
>> Mario Becroft <mb at gem.win.co.nz> wrote:
>>
>>> I have two problems with session shadowing using freenx and nx 3.3.0.
>>>
>>> 1. Shadowing works when I run nxclient on the Xorg server on my laptop,
>>> but when I run it on an nxagent display, a window opens to show the
>>> shadowed session, but it contains only black pixels. Clicking the mouse
>>> inside the window controls the session as expected. Only you can't see
>>> anything.
>>>
>

I can't run shadow session into a nx session too. I think it is a known
problem.

>
>>> 2. Even when I run nxclient on my laptop, so that the display and the
>>> mouse work fine, the keyboard does not work. More specifically, the caps
>>> lock key works, but all other keys have no effect.
>>>
>>> In all cases the original session being shadows continues to work
>>> correctly.
>>>
>>> Are these known problems? Any suggestions?
>>>
>>
>> Have you enabled interactive mode on shadowing in node.conf? the only
>> suggestion I have... o_0
>
> Yes, it is enabled, and the mouse works. I realised, however, that my
> original description is not entirely correct. The keyboard does work--it
> is just mapped completely wrong. Most keys have no mapping at all, but a
> few keys do work. For instance, like I said, caps lock works. And I also
> noticed that backspace works as the enter key!
>

There are some improvements at nxcompshad 3.3.0-3

Regards.
Shima
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/freenx-knx/attachments/20090125/3194a0c0/attachment-0001.htm

------------------------------

Message: 5
Date: Mon, 26 Jan 2009 11:05:02 +1300
From: Mario Becroft <mb at gem.win.co.nz>
Subject: [FreeNX-kNX] Patches for some nxagent bugs
To: freenx-knx at kde.org
Message-ID: <871vuryrch.fsf at server.ak.quickcircuit.co.nz>
Content-Type: text/plain; charset=us-ascii

If you are having problems with openoffice.org or vmware, or maybe other
applications, drastically slowing down or hanging the X server, problems
with it hanging when the X server dies, or a crash in
ValidateOnePicture() (can happen when running firefox on some web
sites), then try the following patches. I have tested them for the past
2 weeks and the issues which I mentioned previously on this list are
definitely fixed. Or upgrade to the latest nx-x11 and nxagent components
from nomachine, which include these fixes.


--- nx-X11/programs/Xserver/os/utils.c-dist	2009-01-10 17:56:03.063467036 +1300
+++ nx-X11/programs/Xserver/os/utils.c	2009-01-10 18:04:16.761853744 +1300
@@ -1822,6 +1822,8 @@
      int pid;
  } *pidlist;

+static sighandler_t old_alarm = NULL; /* XXX horrible awful hack */
+
  pointer
  Popen(char *command, char *type)
  {
@@ -1843,6 +1845,9 @@
  	return NULL;
      }

+    /* Ignore the smart scheduler while this is going on */
+    old_alarm = signal(SIGALRM, SIG_IGN);
+
  #ifdef NX_TRANS_EXIT
      if (OsVendorStartRedirectErrorFProc != NULL) {
          OsVendorStartRedirectErrorFProc();
@@ -1853,6 +1858,12 @@
  	close(pdes[0]);
  	close(pdes[1]);
  	xfree(cur);
+#ifdef NX_TRANS_EXIT
+	if (OsVendorEndRedirectErrorFProc != NULL) {
+	    OsVendorEndRedirectErrorFProc();
+	}
+#endif
+	signal(SIGALRM, old_alarm);
  	return NULL;
      case 0:	/* child */
  	if (setgid(getgid()) == -1)
@@ -2076,6 +2087,9 @@
          OsVendorEndRedirectErrorFProc();
      }
  #endif
+
+    signal(SIGALRM, old_alarm);
+
      return pid == -1 ? -1 : pstat;
  }


--- nx-X11/lib/X11/XlibInt.c.NX.original       2008-11-05 12:09:01.000000000 +0100
+++ nx-X11/lib/X11/XlibInt.c   2009-01-07 12:42:30.000000000 +0100
@@ -1840,7 +1840,7 @@ _XSend (
          int congestion;
  #endif

-#ifdef AGENT_SERVER
+#ifdef NX_TRANS_SOCKET
          if (!size || (dpy->flags & XlibDisplayIOError))
          {
              if (dpy->flags & XlibDisplayIOError)


commit 71fc5b3e9309182978ead676965d65ca93a4e3b9
Author: Keith Packard <keithp at keithp.com>
Date:   Wed May 2 11:41:11 2007 +0200

     Fix for a divide by zero that can be triggered by a malicious client.

     Problem reported by Derek Abdine of rapid7.com. Thanks.

diff --git a/fb/fbtrap.c b/fb/fbtrap.c
index 4c67bcd..478a80f 100644
--- nx-X11/programs/Xserver/fb/fbtrap.c
+++ nx-X11/programs/Xserver/fb/fbtrap.c
@@ -117,6 +117,9 @@ fbRasterizeTrapezoid (PicturePtr    pPicture,
      RenderEdge	l, r;
      xFixed	t, b;

+    if (!xTrapezoidValid (trap))
+	return;
+
      fbGetDrawable (pPicture->pDrawable, buf, stride, bpp, pxoff, pyoff);

      width = pPicture->pDrawable->width;
diff --git a/render/renderedge.c b/render/renderedge.c
index 199ec22..c2ffabe 100644
--- nx-X11/programs/Xserver/render/renderedge.c
+++ nx-X11/programs/Xserver/render/renderedge.c
@@ -143,6 +143,7 @@ RenderEdgeInit (RenderEdge	*e,
      dx = x_bot - x_top;
      dy = y_bot - y_top;
      e->dy = dy;
+    e->dx = 0;
      if (dy)
      {
  	if (dx >= 0)



-- 
Mario Becroft <mb at gem.win.co.nz>


------------------------------

Message: 6
Date: Mon, 26 Jan 2009 11:11:02 +1300
From: Mario Becroft <mb at gem.win.co.nz>
Subject: Re: [FreeNX-kNX] Shadow does not work inside nxagent,	and
 	keyboard 	does not work
To: User Support for FreeNX Server and kNX Client <freenx-knx at kde.org>
Message-ID: <87wscjvxxl.fsf at server.ak.quickcircuit.co.nz>
Content-Type: text/plain; charset=us-ascii

Marcelo Boveto Shima <marceloshima at gmail.com> writes:

> I can't run shadow session into a nx session too. I think it is a known
> problem.

Does nomachine know about this problem?

> There are some improvements at nxcompshad 3.3.0-3

Thank you, that fixes the problem!

-- 
Mario Becroft <mb at gem.win.co.nz>


------------------------------

Message: 7
Date: Mon, 26 Jan 2009 01:46:46 -0200
From: Marcelo Boveto Shima <marceloshima at gmail.com>
Subject: Re: [FreeNX-kNX] Collection of helpful freenx patches
To: User Support for FreeNX Server and kNX Client <freenx-knx at kde.org>
Message-ID:
 	<7d3bf3160901251946l3735b652n388f1ddade26fb8a at mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

authorization.patch
>
> Authorisation patch. On my system, at least, nxnode fails to set up the
> ~/.Xauthority file correctly, because by the time it runs the xauth
> command, the XAUTHORITY environment variable has already been set to
> ~/.nx/C-*/authority. Change the first xauth command to explicitly work
> on ~/.Xauthority. Ignore the nxhost* lines or replace with your own
> hostname(s) if you want to authorize connections from other than localhost.
>

Don't know which system needs this patch.

auth_timeout.patch
>
> If the directory server is extremely highly loaded (unusual)
> authentication can take too long. Increase the timeout so that nxserver
> does not give up.
>

The timeout should be made configurable at node.conf


> dialog.patch
>
> Using nxclient as nxdialog is extremely slow. Make it use xdialog
> instead.
>

xdialog is ugly and most of people prefer nxclient dialog.
Maybe it can be made configurable at node.conf

nxnode_echo_hang.patch
>
> Fix hang in server_nxnode_echo() when the client dies or loses
> connectivity. This resulted in sessions not suspending and resuming
> correctly in that case.
>
>
Nice. I will include it on ubuntu package.

proxy_ip.patch
>
> Backport of the proxy ip change to allow connection without encryption.
>

This patch is in the svn.

shadow_list_username.patch
>
> In the list of sessions available for shadowing, show the username
> (helpful if you have several different users with the same session name,
> or session names that do not identify the user).
>

Nice. I will include it on ubuntu package.

shadow_suspended_sessions.patch
>
> Make suspended sessions available for shadowing, instead of only running
> sessions.
>

I really don't like the idea of shadowing a suspended session.
But probably should be made configurable at node.conf.


> superuser_session_limit.patch
>
> Enable certain users to bypass the per-user session limit. Invokes
> /usr/NX/bin/superuser with the username, which should return 0 if user
> is allowed to bypass limit, otherwise 1. Useful if your user session
> limit is 1, but for special users you want to allow more sessions.
>

This should be moved into nxacl. That is the fine grained permissions file.

valgrind.patch
>
> Run nxagent in memcheck for a specific user, for debugging use. Apply
> patch, then change username and swap the commented and uncommented lines
> to enable memcheck usage.
>

Don't think much people will actually use it.

Thanks for your contributions.
My patches are hosted at
http://bazaar.launchpad.net/~freenx-team/freenx-server/ubuntu/changes

Regards.
Shima
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/freenx-knx/attachments/20090126/12a556d4/attachment.htm

------------------------------

________________________________________________________________
      Were you helped on this list with your FreeNX problem?
     Then please write up the solution in the FreeNX Wiki/FAQ:
   http://openfacts.berlios.de/index-en.phtml?title=FreeNX_FAQ
________________________________________________________________
        FreeNX-kNX mailing list --- FreeNX-kNX at kde.org
       https://mail.kde.org/mailman/listinfo/freenx-knx
________________________________________________________________

End of FreeNX-kNX Digest, Vol 53, Issue 32
******************************************


More information about the Thai-l mailing list