From ee3c80ab6cbfd702fe2252ce70e7e0ebc84ae332 Mon Sep 17 00:00:00 2001
From: fdorson <fdorson@localhost>
Date: Mon, 21 Jul 2008 06:29:59 +0000
Subject: [PATCH] issue #3317 : Removing replication links requires re-start of the server Enhancement of the last fix to take into account server name as well as IP address in the configuration of the ds-cfg-replication-server.

---
 opends/src/server/org/opends/server/replication/server/ReplicationServer.java  |   17 ++++++++++++++++-
 opends/src/server/org/opends/server/replication/protocol/TLSSocketSession.java |    4 ++++
 2 files changed, 20 insertions(+), 1 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/protocol/TLSSocketSession.java b/opends/src/server/org/opends/server/replication/protocol/TLSSocketSession.java
index 76d47e9..799a043 100644
--- a/opends/src/server/org/opends/server/replication/protocol/TLSSocketSession.java
+++ b/opends/src/server/org/opends/server/replication/protocol/TLSSocketSession.java
@@ -103,10 +103,14 @@
     }
     if (plainSocket != null && !plainSocket.isClosed())
     {
+      plainInput.close();
+      plainOutput.close();
       plainSocket.close();
     }
     if (secureSocket != null && !secureSocket.isClosed())
     {
+      input.close();
+      output.close();
       secureSocket.close();
     }
   }
diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationServer.java b/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
index 14de2c9..2115aa2 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
@@ -1043,7 +1043,22 @@
     for (String server: replicationServers)
     {
       if (!newReplServers.contains(server))
-        serversToDisconnect.add(server);
+      {
+        try
+        {
+          // translate the server name into IP address
+          // and keep the port number
+          String[] host = server.split(":");
+          serversToDisconnect.add(
+              (InetAddress.getByName(host[0])).getHostAddress()
+              + ":" + host[1]);
+        }
+        catch (IOException e)
+        {
+          Message message = ERR_COULD_NOT_SOLVE_HOSTNAME.get(server);
+          logError(message);
+        }
+      }
     }
 
     if (serversToDisconnect.isEmpty())

--
Gitblit v1.10.0