diff options
-rwxr-xr-x | nxcomp/CHANGELOG | 8 | ||||
-rwxr-xr-x | nxcomp/ClientChannel.cpp | 26 | ||||
-rwxr-xr-x | nxcomp/Proxy.cpp | 2 |
3 files changed, 15 insertions, 21 deletions
diff --git a/nxcomp/CHANGELOG b/nxcomp/CHANGELOG index f038665d2..dc2c38410 100755 --- a/nxcomp/CHANGELOG +++ b/nxcomp/CHANGELOG @@ -1,5 +1,13 @@ ChangeLog: +nxcomp-3.3.0-4 + +- Check if the variable storing the ping time exceeded the maximum + integer value. + +- Recover incorrect sequence number when the proxy is not connected + to an agent. + nxcomp-3.3.0-3 - Removed a condition in ClientChannel that caused a loss in event diff --git a/nxcomp/ClientChannel.cpp b/nxcomp/ClientChannel.cpp index f93156a17..ef9ea270c 100755 --- a/nxcomp/ClientChannel.cpp +++ b/nxcomp/ClientChannel.cpp @@ -4539,24 +4539,6 @@ int ClientChannel::handleWrite(const unsigned char *message, unsigned int length lastSequence_ = serverSequence_; } } -/* -FIXME: This block was added, otherwise we have a loss - of the nxagent events. -*/ - else - { - #ifdef DEBUG - *logofs << "handleWrite: Updating last event's sequence " - << lastSequence_ << " to X server's sequence number " - << serverSequence_ << " for FD#" << fd_ - << ".\n" << logofs_flush; - #endif - - lastSequence_ = serverSequence_; - } - -/* -FIXME: This causes the loss of the nxagent events. // // Check if by producing events at client side we @@ -4565,7 +4547,12 @@ FIXME: This causes the loss of the nxagent events. // comply with the last one known by client. // - if (serverSequence_ > lastSequence_) +/* +FIXME: Recover the sequence number if the proxy + is not connected to an agent. +*/ + if (serverSequence_ > lastSequence_ || + control -> SessionMode != session_proxy) { #ifdef DEBUG *logofs << "handleWrite: Updating last event's sequence " @@ -4589,7 +4576,6 @@ FIXME: This causes the loss of the nxagent events. << logofs_flush; } #endif -*/ // // Check if remote side used fast encoding. diff --git a/nxcomp/Proxy.cpp b/nxcomp/Proxy.cpp index 796568375..8e1d0b565 100755 --- a/nxcomp/Proxy.cpp +++ b/nxcomp/Proxy.cpp @@ -3645,7 +3645,7 @@ int Proxy::handlePing() { int diffPing = diffTimestamp(timeouts_.pingTs, nowTs); - if (diffPing >= (control -> PingTimeout - + if (diffPing < 0 || diffPing >= (control -> PingTimeout - control -> LatencyTimeout * 5)) { #if defined(TEST) || defined(INFO) || defined(PING) |