From 42183c9f7ddb823d7e0e4c4308a4b0d54b1a3e7e Mon Sep 17 00:00:00 2001
From: davidely <davidely@localhost>
Date: Tue, 20 Feb 2007 12:43:13 +0000
Subject: [PATCH] Fix for 1249.  Set SO_LINGER and REUSE_ADDR in LDAPConnection used by command line tools such as LDAPSearch

---
 opends/src/server/org/opends/server/tools/LDAPConnection.java |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/opends/src/server/org/opends/server/tools/LDAPConnection.java b/opends/src/server/org/opends/server/tools/LDAPConnection.java
index ec17bf9..726b797 100644
--- a/opends/src/server/org/opends/server/tools/LDAPConnection.java
+++ b/opends/src/server/org/opends/server/tools/LDAPConnection.java
@@ -22,11 +22,12 @@
  * CDDL HEADER END
  *
  *
- *      Portions Copyright 2006 Sun Microsystems, Inc.
+ *      Portions Copyright 2007 Sun Microsystems, Inc.
  */
 package org.opends.server.tools;
 
 import java.io.PrintStream;
+import java.io.IOException;
 import java.net.ConnectException;
 import java.net.Socket;
 import java.net.UnknownHostException;
@@ -245,6 +246,18 @@
       throw new LDAPConnectionException(ex2.getMessage(), ex2);
     }
 
+    // We need this so that we don't run out of addresses when the tool
+    // commands are called A LOT, as in the unit tests.
+    try
+    {
+      socket.setSoLinger(true, 0);
+      socket.setReuseAddress(true);
+    } catch(IOException e)
+    {
+      assert debugException(CLASS_NAME, "connectToHost", e);
+      // It doesn't matter too much if this throws, so ignore it.
+    }
+
     if (connectionOptions.getReportAuthzID())
     {
       requestControls.add(new LDAPControl(OID_AUTHZID_REQUEST));

--
Gitblit v1.10.0