You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by dr...@apache.org on 2015/04/21 00:41:34 UTC
directory-kerby git commit: Fixed an infinite loop in
DefaultKdcHandler, thanks Colm for reporting it
Repository: directory-kerby
Updated Branches:
refs/heads/master 1e5c10ea1 -> 0e9ed9adf
Fixed an infinite loop in DefaultKdcHandler, thanks Colm for reporting it
Project: http://git-wip-us.apache.org/repos/asf/directory-kerby/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerby/commit/0e9ed9ad
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerby/tree/0e9ed9ad
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerby/diff/0e9ed9ad
Branch: refs/heads/master
Commit: 0e9ed9adf2f30906984c8f53c9724908943fefe5
Parents: 1e5c10e
Author: Drankye <dr...@gmail.com>
Authored: Tue Apr 21 06:41:15 2015 +0800
Committer: Drankye <dr...@gmail.com>
Committed: Tue Apr 21 06:41:15 2015 +0800
----------------------------------------------------------------------
.../kerb/transport/KrbTcpTransport.java | 8 ++++++--
.../kerberos/kerb/transport/KrbTransport.java | 2 +-
.../kerb/transport/KrbUdpTransport.java | 8 ++++++--
.../kerb/server/impl/DefaultKdcHandler.java | 20 ++++++++++++--------
4 files changed, 25 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/0e9ed9ad/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KrbTcpTransport.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KrbTcpTransport.java b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KrbTcpTransport.java
index 610a63d..cd949c5 100644
--- a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KrbTcpTransport.java
+++ b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KrbTcpTransport.java
@@ -66,7 +66,11 @@ public class KrbTcpTransport
}
@Override
- public void release() throws IOException {
- socket.close();
+ public void release() {
+ try {
+ socket.close();
+ } catch (IOException e) {
+ // NOOP
+ }
}
}
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/0e9ed9ad/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KrbTransport.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KrbTransport.java b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KrbTransport.java
index 7e68444..e2d1e7e 100644
--- a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KrbTransport.java
+++ b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KrbTransport.java
@@ -61,5 +61,5 @@ public interface KrbTransport {
/**
* Release and close related resources like connection.
*/
- public void release() throws IOException;
+ public void release();
}
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/0e9ed9ad/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KrbUdpTransport.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KrbUdpTransport.java b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KrbUdpTransport.java
index 41c7784..42708e7 100644
--- a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KrbUdpTransport.java
+++ b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/transport/KrbUdpTransport.java
@@ -62,7 +62,11 @@ public class KrbUdpTransport
}
@Override
- public void release() throws IOException {
- channel.close();
+ public void release() {
+ try {
+ channel.close();
+ } catch (IOException e) {
+ //NOOP
+ }
}
}
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/0e9ed9ad/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/impl/DefaultKdcHandler.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/impl/DefaultKdcHandler.java b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/impl/DefaultKdcHandler.java
index 9604c05..96809ee 100644
--- a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/impl/DefaultKdcHandler.java
+++ b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/impl/DefaultKdcHandler.java
@@ -23,11 +23,15 @@ import org.apache.kerby.kerberos.kerb.server.KdcHandler;
import org.apache.kerby.kerberos.kerb.server.KdcContext;
import org.apache.kerby.kerberos.kerb.transport.KrbTcpTransport;
import org.apache.kerby.kerberos.kerb.transport.KrbTransport;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.io.IOException;
import java.net.InetAddress;
import java.nio.ByteBuffer;
public class DefaultKdcHandler extends KdcHandler implements Runnable {
+ private static Logger logger = LoggerFactory.getLogger(DefaultKdcHandler.class);
private final KrbTransport transport;
public DefaultKdcHandler(KdcContext kdcContext, KrbTransport transport) {
@@ -41,19 +45,21 @@ public class DefaultKdcHandler extends KdcHandler implements Runnable {
try {
ByteBuffer message = transport.receiveMessage();
if (message == null) {
- System.out.println("No valid request recved. Disconnect actively");
+ logger.debug("No valid request recved. Disconnect actively");
transport.release();
break;
}
handleMessage(message);
- } catch (Exception e) {
- System.out.println("Transport or decoding error occurred"
- + e.getMessage());
+ } catch (IOException e) {
+ transport.release();
+ logger.debug("Transport or decoding error occurred, " +
+ "disconnecting abnormally", e);
+ break;
}
}
}
- protected void handleMessage(ByteBuffer message) throws Exception {
+ protected void handleMessage(ByteBuffer message) {
InetAddress clientAddress = transport.getRemoteAddress();
boolean isTcp = (transport instanceof KrbTcpTransport);
@@ -61,9 +67,7 @@ public class DefaultKdcHandler extends KdcHandler implements Runnable {
ByteBuffer krbResponse = handleMessage(message, isTcp, clientAddress);
transport.sendMessage(krbResponse);
} catch (Exception e) {
- //TODO: log the error
- System.out.println("Error occured while processing request:"
- + e.getMessage());
+ logger.debug("Error occured while processing request:", e);
}
}
}