You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ha...@apache.org on 2015/05/11 06:51:16 UTC

directory-kerby git commit: DIRKRB-252 Enable client timeout configuration. Contributed by Wei

Repository: directory-kerby
Updated Branches:
  refs/heads/master 9be336a50 -> e0f71f773


DIRKRB-252 Enable client timeout configuration. Contributed by Wei


Project: http://git-wip-us.apache.org/repos/asf/directory-kerby/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerby/commit/e0f71f77
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerby/tree/e0f71f77
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerby/diff/e0f71f77

Branch: refs/heads/master
Commit: e0f71f7737528dc52169612c0719d657441f35da
Parents: 9be336a
Author: Lin <li...@foxmail.com>
Authored: Mon May 11 12:50:34 2015 +0800
Committer: Lin <li...@foxmail.com>
Committed: Mon May 11 12:50:34 2015 +0800

----------------------------------------------------------------------
 .../client/impl/DefaultInternalKrbClient.java     |  1 +
 .../kerby/kerberos/kerb/transport/KdcNetwork.java |  9 ++++++---
 .../kerby/kerberos/kerb/transport/KrbNetwork.java |  7 ++++++-
 .../kerby/kerberos/kerb/server/KdcTestBase.java   | 18 +++++++++---------
 4 files changed, 22 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/e0f71f77/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/impl/DefaultInternalKrbClient.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/impl/DefaultInternalKrbClient.java b/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/impl/DefaultInternalKrbClient.java
index 2f66717..53d3707 100644
--- a/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/impl/DefaultInternalKrbClient.java
+++ b/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/impl/DefaultInternalKrbClient.java
@@ -57,6 +57,7 @@ public class DefaultInternalKrbClient extends AbstractInternalKrbClient {
         }
 
         KrbNetwork network = new KrbNetwork();
+        network.setSocketTimeout(getSetting().getTimeout());
         try {
             transport = network.connect(tcpAddress, udpAddress);
         } catch (IOException e) {

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/e0f71f77/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KdcNetwork.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KdcNetwork.java b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KdcNetwork.java
index 4396887..57dea73 100644
--- a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KdcNetwork.java
+++ b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KdcNetwork.java
@@ -34,15 +34,18 @@ import java.util.Map;
  */
 @SuppressWarnings("PMD")
 public abstract class KdcNetwork {
+    protected final static int MAX_MESSAGE_SIZE = 65507;
+    private final static int KDC_TCP_TRANSPORT_TIMEOUT = 3 * 1000;
+    private final static int KDC_TCP_SERVER_TIMEOUT = 100;
     private InetSocketAddress tcpAddress;
     private InetSocketAddress udpAddress;
     private boolean isStopped;
-    protected final static int MAX_MESSAGE_SIZE = 65507;
     private ServerSocket tcpServer;
     private DatagramChannel udpServer;
     private Map<InetSocketAddress, KdcUdpTransport> transports =
             new HashMap<InetSocketAddress, KdcUdpTransport>();
     private ByteBuffer recvBuffer;
+
     public void init() {
         isStopped = false;
     }
@@ -53,7 +56,7 @@ public abstract class KdcNetwork {
         this.udpAddress = udpAddress;
 
         tcpServer = new ServerSocket();
-        tcpServer.setSoTimeout(100);
+        tcpServer.setSoTimeout(KDC_TCP_SERVER_TIMEOUT);
         tcpServer.bind(tcpAddress);
 
         if (udpAddress != null) {
@@ -110,7 +113,7 @@ public abstract class KdcNetwork {
     private void checkAndAccept() throws IOException {
         Socket socket;
         if ((socket = tcpServer.accept()) != null) {
-            socket.setSoTimeout(3000); //TODO: from config
+            socket.setSoTimeout(KDC_TCP_TRANSPORT_TIMEOUT);
             KrbTransport transport = new KrbTcpTransport(socket);
             onNewTransport(transport);
         }

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/e0f71f77/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KrbNetwork.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KrbNetwork.java b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KrbNetwork.java
index 7bf425b..591edf7 100644
--- a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KrbNetwork.java
+++ b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KrbNetwork.java
@@ -29,6 +29,7 @@ import java.net.Socket;
 @SuppressWarnings("PMD")
 public class KrbNetwork {
 
+    private int socketTimeout = 10 * 1000;
     private InetSocketAddress tcpAddress;
     private InetSocketAddress udpAddress;
 
@@ -55,8 +56,12 @@ public class KrbNetwork {
 
     private KrbTcpTransport tcpConnect() throws IOException {
         Socket socket = new Socket();
-        socket.setSoTimeout(10 * 1000); // 10 seconds. TODO: from config
+        socket.setSoTimeout(socketTimeout);
         socket.connect(tcpAddress);
         return new KrbTcpTransport(socket);
     }
+
+    public void setSocketTimeout(int milliSeconds) {
+        socketTimeout = milliSeconds;
+    }
 }

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/e0f71f77/kerby-kerb/kerb-kdc-test/src/main/java/org/apache/kerby/kerberos/kerb/server/KdcTestBase.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-kdc-test/src/main/java/org/apache/kerby/kerberos/kerb/server/KdcTestBase.java b/kerby-kerb/kerb-kdc-test/src/main/java/org/apache/kerby/kerberos/kerb/server/KdcTestBase.java
index 5edea86..0389dd7 100644
--- a/kerby-kerb/kerb-kdc-test/src/main/java/org/apache/kerby/kerberos/kerb/server/KdcTestBase.java
+++ b/kerby-kerb/kerb-kdc-test/src/main/java/org/apache/kerby/kerberos/kerb/server/KdcTestBase.java
@@ -68,14 +68,6 @@ public abstract class KdcTestBase {
         return serverPort;
     }
 
-    protected boolean allowUdp() {
-        return true;
-    }
-
-    protected boolean allowTcp() {
-        return true;
-    }
-
     @BeforeClass
     public static void createTestDir() throws IOException {
         String basedir = System.getProperty("basedir");
@@ -92,6 +84,14 @@ public abstract class KdcTestBase {
         FileUtils.deleteDirectory(TEST_DIR);
     }
 
+    protected boolean allowUdp() {
+        return true;
+    }
+
+    protected boolean allowTcp() {
+        return true;
+    }
+
     public String getFileContent(String path) throws IOException {
         FileInputStream inputStream = new FileInputStream(path);
         String content = IOUtils.toString(inputStream, "UTF-8");
@@ -194,7 +194,7 @@ public abstract class KdcTestBase {
             krbClnt.setKdcUdpPort(udpPort);
         }
 
-        krbClnt.setTimeout(5);
+        krbClnt.setTimeout(50);
         krbClnt.setKdcRealm(kdcServer.getKdcRealm());
     }