diff options
author | Eric Hameleers <alien@slackware.com> | 2009-07-30 11:29:42 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2009-07-30 11:29:42 +0000 |
commit | 15067fe28c75525f7737ae2ebf30b54ef39852fb (patch) | |
tree | f6aa7da9cb87dc4e5bf24da6a5a9ef56c8b160b7 /freenx | |
parent | e6d1b76c8022ff1a5da9ef64532aa2fb0bc22158 (diff) | |
download | asb-15067fe28c75525f7737ae2ebf30b54ef39852fb.tar.gz asb-15067fe28c75525f7737ae2ebf30b54ef39852fb.tar.xz |
Initial revision
Diffstat (limited to 'freenx')
-rw-r--r-- | freenx/build/freenx_fixresume.diff | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/freenx/build/freenx_fixresume.diff b/freenx/build/freenx_fixresume.diff new file mode 100644 index 00000000..278db1d1 --- /dev/null +++ b/freenx/build/freenx_fixresume.diff @@ -0,0 +1,29 @@ +http://mail.kde.org/pipermail/freenx-knx/2009-January/007756.html + +The key problem is that when the client nxssh is killed, nxserver hangs +in the echo inside server_nxnode_echo(). It attempts to handle this +situation by installing a SIGPIPE handler that sets +SERVER_CHANNEL=0. Unfortunately, SIGPIPE is never received in this +situation; instead the echo hangs forever. This is what causes it never +to process any more commands from nxnode. + +It is not entirely clear why it happens in this way. + +Anyway, the workaround is to change echo to /bin/echo. /bin/echo returns +immediately if the client is disconnected. Probably it should also check +the status and set SERVER_CHANNEL=0 if /bin/echo failed. However I have +not bothered to do this. It does not seem to matter a great deal. + +--- nxserver.orig 2009-01-25 16:07:46.590977440 +1300 ++++ nxserver 2009-01-25 16:07:54.498952944 +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() |