diff options
Diffstat (limited to 'nxcomp')
-rw-r--r-- | nxcomp/CHANGELOG | 4 | ||||
-rw-r--r-- | nxcomp/Proxy.cpp | 19 | ||||
-rw-r--r-- | nxcomp/ServerProxy.cpp | 2 |
3 files changed, 23 insertions, 2 deletions
diff --git a/nxcomp/CHANGELOG b/nxcomp/CHANGELOG index df10c85ce..b7ef0d97a 100644 --- a/nxcomp/CHANGELOG +++ b/nxcomp/CHANGELOG @@ -1,5 +1,9 @@ ChangeLog: +nxcomp-3.5.0-2 + +- Fixed TR11H02398. Solved a race condition when creating channels. + nxcomp-3.5.0-1 - Opened the 3.5.0 branch based on nxcomp-3.4.0-7. diff --git a/nxcomp/Proxy.cpp b/nxcomp/Proxy.cpp index 347dd5add..3b4df7eb6 100644 --- a/nxcomp/Proxy.cpp +++ b/nxcomp/Proxy.cpp @@ -1,6 +1,6 @@ /**************************************************************************/ /* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ +/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */ /* */ /* NXCOMP, NX protocol compression and NX extensions to this software */ /* are copyright of NoMachine. Redistribution and use of the present */ @@ -1626,6 +1626,23 @@ int Proxy::handleControlFromProxy(const unsigned char *message) int channelId = *(message + 2); // + // Check if the channel has been dropped. + // + + if (channels_[channelId] != NULL && + (channels_[channelId] -> getDrop() == 1 || + channels_[channelId] -> getClosing() == 1)) + { + #ifdef TEST + *logofs << "Proxy: Dropping the descriptor FD#" + << getFd(channelId) << " channel ID#" + << channelId << ".\n" << logofs_flush; + #endif + + handleDrop(channelId); + } + + // // Check if the channel is in the valid // range. // diff --git a/nxcomp/ServerProxy.cpp b/nxcomp/ServerProxy.cpp index 404dd5123..0a72fc301 100644 --- a/nxcomp/ServerProxy.cpp +++ b/nxcomp/ServerProxy.cpp @@ -1,6 +1,6 @@ /**************************************************************************/ /* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ +/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */ /* */ /* NXCOMP, NX protocol compression and NX extensions to this software */ /* are copyright of NoMachine. Redistribution and use of the present */ |