From a5c5efbf8ca56c059709953f7fedb647dadaed06 Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Thu, 27 May 2010 15:28:09 +0000
Subject: [PATCH] Fix for issues #3395 and #3998. The changes improves the replica initialization protocol, especially flow control and handling connection outage.

---
 opends/src/server/org/opends/server/replication/server/LightweightServerHandler.java |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/server/LightweightServerHandler.java b/opends/src/server/org/opends/server/replication/server/LightweightServerHandler.java
index d2a5a4d..fde178c 100644
--- a/opends/src/server/org/opends/server/replication/server/LightweightServerHandler.java
+++ b/opends/src/server/org/opends/server/replication/server/LightweightServerHandler.java
@@ -87,6 +87,8 @@
   private AssuredMode assuredMode = AssuredMode.SAFE_DATA_MODE;
   // DS safe data level (relevant if assured mode is safe data)
   private byte safeDataLevel = (byte) -1;
+  // The prococol version
+  private short protocolVersion = -1;
 
   private Set<String> eclInclude = new HashSet<String>();
 
@@ -107,11 +109,13 @@
    * @param assuredMode The assured mode of the remote DS
    * @param safeDataLevel The safe data level of the remote DS
    * @param eclInclude The list of entry attributes to be added to the ECL.
+   * @param protocolVersion The protocol version supported by the remote DS.
    */
   public LightweightServerHandler(ReplicationServerHandler replServerHandler,
     int replicationServerId, int serverId, long generationId, byte groupId,
     ServerStatus status, List<String> refUrls, boolean assuredFlag,
-    AssuredMode assuredMode, byte safeDataLevel, Set<String> eclInclude)
+    AssuredMode assuredMode, byte safeDataLevel, Set<String> eclInclude,
+    short protocolVersion)
   {
     super("Server Handler");
     this.replServerHandler = replServerHandler;
@@ -126,6 +130,7 @@
     this.assuredMode = assuredMode;
     this.safeDataLevel = safeDataLevel;
     this.eclInclude = eclInclude;
+    this.protocolVersion = protocolVersion;
 
     if (debugEnabled())
       TRACER.debugInfo(
@@ -144,7 +149,7 @@
   {
     DSInfo dsInfo = new DSInfo(serverId, replicationServerId, generationId,
       status, assuredFlag, assuredMode, safeDataLevel, groupId, refUrls,
-      eclInclude);
+      eclInclude, protocolVersion);
 
     return dsInfo;
   }

--
Gitblit v1.10.0