From d45ddd11c831984cdcf818b181dd6ad7ed22215e Mon Sep 17 00:00:00 2001 From: David McKnight Date: Thu, 11 Oct 2007 16:06:09 +0000 Subject: [PATCH] permitting client to communicate with old dstore servers (7.x, internal IBM RSE) --- .../dstore/core/client/ClientConnection.java | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/rse/plugins/org.eclipse.dstore.core/src/org/eclipse/dstore/core/client/ClientConnection.java b/rse/plugins/org.eclipse.dstore.core/src/org/eclipse/dstore/core/client/ClientConnection.java index 4ee2acf8669..0ed82721589 100644 --- a/rse/plugins/org.eclipse.dstore.core/src/org/eclipse/dstore/core/client/ClientConnection.java +++ b/rse/plugins/org.eclipse.dstore.core/src/org/eclipse/dstore/core/client/ClientConnection.java @@ -873,19 +873,22 @@ public class ClientConnection } else if (serverVersionStr[VERSION_INDEX_PROTOCOL].equals(clientVersionStr[VERSION_INDEX_PROTOCOL])) { - - - if (_dataStore.getServerVersion()== _clientVersion) + if (_clientVersion == 0) + { + _clientVersion = Integer.parseInt(clientVersionStr[VERSION_INDEX_VERSION]); + } + int serverVersion = _dataStore.getServerVersion(); + if (serverVersion== _clientVersion) { // major versions match so should be compatible return HANDSHAKE_CORRECT; } else { - if (_dataStore.getServerVersion()> _clientVersion) + if (serverVersion > _clientVersion) { // newer server - if (_dataStore.getServerVersion() - 1 == _clientVersion) + if (serverVersion - 1 == _clientVersion) { return HANDSHAKE_SERVER_RECENT_NEWER; } @@ -897,10 +900,16 @@ public class ClientConnection else { // newer client - if (_dataStore.getServerVersion() + 1 == _clientVersion) + if (serverVersion + 1 == _clientVersion) { return HANDSHAKE_SERVER_RECENT_OLDER; } + else if (serverVersion + 2 == _clientVersion) + { + // TODO we shouldn't be allowing this but + // wanting to see if old (non-open RSE server still works with open RSE) + return HANDSHAKE_SERVER_RECENT_OLDER; + } else { return HANDSHAKE_SERVER_OLDER;