From 40e2acfd1e9676f3b63385b15075bf1395d4543e Mon Sep 17 00:00:00 2001
From: pgamba <pgamba@localhost>
Date: Fri, 01 Feb 2008 13:21:19 +0000
Subject: [PATCH] Fix 2598 - fixes for global replication monitoring
---
opends/src/server/org/opends/server/replication/protocol/ServerStartMessage.java | 35 +++++++++++++++++++++++++++++++++--
1 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/opends/src/server/org/opends/server/replication/protocol/ServerStartMessage.java b/opends/src/server/org/opends/server/replication/protocol/ServerStartMessage.java
index 878973e..9ac6b32 100644
--- a/opends/src/server/org/opends/server/replication/protocol/ServerStartMessage.java
+++ b/opends/src/server/org/opends/server/replication/protocol/ServerStartMessage.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Portions Copyright 2006-2007 Sun Microsystems, Inc.
+ * Portions Copyright 2006-2008 Sun Microsystems, Inc.
*/
package org.opends.server.replication.protocol;
@@ -54,6 +54,7 @@
private int maxReceiveDelay;
private int maxSendDelay;
private int windowSize;
+ private boolean handshakeOnly;
private ServerState serverState = null;
/**
@@ -87,6 +88,8 @@
* @param generationId The generationId for this server.
* @param sslEncryption Whether to continue using SSL to encrypt messages
* after the start messages have been exchanged.
+ * @param handshakeOnly Whether this message is only to get an handshake
+ * with the server or not.
*/
public ServerStartMessage(short serverId, DN baseDn, int maxReceiveDelay,
int maxReceiveQueue, int maxSendDelay,
@@ -95,7 +98,8 @@
ServerState serverState,
short protocolVersion,
long generationId,
- boolean sslEncryption)
+ boolean sslEncryption,
+ boolean handshakeOnly)
{
super(protocolVersion, generationId);
@@ -109,6 +113,7 @@
this.heartbeatInterval = heartbeatInterval;
this.sslEncryption = sslEncryption;
this.serverState = serverState;
+ this.handshakeOnly = handshakeOnly;
try
{
@@ -209,10 +214,19 @@
sslEncryption = Boolean.valueOf(new String(in, pos, length, "UTF-8"));
pos += length +1;
+
+ /*
+ * read the handshakeOnly flag
+ */
+ length = getNextLength(in, pos);
+ handshakeOnly = Boolean.valueOf(new String(in, pos, length, "UTF-8"));
+ pos += length +1;
+
/*
* read the ServerState
*/
serverState = new ServerState(in, pos, in.length-1);
+
} catch (UnsupportedEncodingException e)
{
throw new DataFormatException("UTF-8 is not supported by this jvm.");
@@ -322,6 +336,8 @@
byte[] byteSSLEncryption =
String.valueOf(sslEncryption).getBytes("UTF-8");
byte[] byteServerState = serverState.getBytes();
+ byte[] byteHandshakeOnly =
+ String.valueOf(handshakeOnly).getBytes("UTF-8");
int length = byteDn.length + 1 + byteServerId.length + 1 +
byteServerUrl.length + 1 +
@@ -332,6 +348,7 @@
byteWindowSize.length + 1 +
byteHeartbeatInterval.length + 1 +
byteSSLEncryption.length + 1 +
+ byteHandshakeOnly.length + 1 +
byteServerState.length + 1;
/* encode the header in a byte[] large enough to also contain the mods */
@@ -358,6 +375,8 @@
pos = addByteArray(byteSSLEncryption, resultByteArray, pos);
+ pos = addByteArray(byteHandshakeOnly, resultByteArray, pos);
+
pos = addByteArray(byteServerState, resultByteArray, pos);
return resultByteArray;
@@ -401,4 +420,16 @@
{
return sslEncryption;
}
+
+ /**
+ * Get the SSL encryption value for the ldap server that created the
+ * message.
+ *
+ * @return The SSL encryption value for the ldap server that created the
+ * message.
+ */
+ public boolean isHandshakeOnly()
+ {
+ return handshakeOnly;
+ }
}
--
Gitblit v1.10.0