aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xnxcomp/CHANGELOG8
-rwxr-xr-xnxcomp/ClientChannel.cpp26
-rwxr-xr-xnxcomp/Proxy.cpp2
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)