Author: trustin
Date: Sun Jul 29 20:12:24 2007
New Revision: 560848

URL: http://svn.apache.org/viewvc?view=rev&rev=560848
Log:
* Fixed handshake returns without executing tasks during renegotiation
* Cleaned up code a little bit


Modified:
    
mina/branches/1.0/filter-ssl/src/main/java/org/apache/mina/filter/support/SSLHandler.java
    
mina/branches/1.1/filter-ssl/src/main/java/org/apache/mina/filter/support/SSLHandler.java
    mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SSLHandler.java

Modified: 
mina/branches/1.0/filter-ssl/src/main/java/org/apache/mina/filter/support/SSLHandler.java
URL: 
http://svn.apache.org/viewvc/mina/branches/1.0/filter-ssl/src/main/java/org/apache/mina/filter/support/SSLHandler.java?view=diff&rev=560848&r1=560847&r2=560848
==============================================================================
--- 
mina/branches/1.0/filter-ssl/src/main/java/org/apache/mina/filter/support/SSLHandler.java
 (original)
+++ 
mina/branches/1.0/filter-ssl/src/main/java/org/apache/mina/filter/support/SSLHandler.java
 Sun Jul 29 20:12:24 2007
@@ -438,8 +438,11 @@
      * @param status
      * @throws SSLException
      */
-    private SSLEngineResult.Status checkStatus(SSLEngineResult.Status status)
+    private void checkStatus(NextFilter nextFilter, SSLEngineResult res)
             throws SSLException {
+        
+        SSLEngineResult.Status status = res.getStatus();
+        
         /*
          * The status may be:
          * OK - Normal operation
@@ -456,7 +459,11 @@
                     + appBuffer);
         }
 
-        return status;
+        if (res.getHandshakeStatus() != 
SSLEngineResult.HandshakeStatus.NOT_HANDSHAKING) {
+            // Renegotiation required.
+            SessionLog.debug(session, " Renegotiating...");
+            handshake(nextFilter);
+        }
     }
 
     /**
@@ -595,7 +602,7 @@
         }
     }
 
-    private SSLEngineResult.Status unwrap(NextFilter nextFilter) throws 
SSLException {
+    private void unwrap(NextFilter nextFilter) throws SSLException {
         if (SessionLog.isDebugEnabled(session)) {
             SessionLog.debug(session, " unwrap()");
         }
@@ -612,15 +619,7 @@
         // prepare app data to be read
         appBuffer.flip();
         
-        checkStatus(res.getStatus());
-        
-        if (res.getHandshakeStatus() != 
SSLEngineResult.HandshakeStatus.NOT_HANDSHAKING) {
-            // Renegotiation required.
-            SessionLog.debug(session, " Renegotiating...");
-            handshake(nextFilter);
-        }
-
-        return res.getStatus();
+        checkStatus(nextFilter, res);
     }
 
     private SSLEngineResult.Status unwrapHandshake(NextFilter nextFilter) 
throws SSLException {
@@ -651,8 +650,8 @@
         // prepare app data to be read
         appBuffer.flip();
 
-        //initialHandshakeStatus = res.getHandshakeStatus();
-        return checkStatus(res.getStatus());
+        checkStatus(nextFilter, res);
+        return res.getStatus();
     }
 
     private SSLEngineResult unwrap0() throws SSLException {

Modified: 
mina/branches/1.1/filter-ssl/src/main/java/org/apache/mina/filter/support/SSLHandler.java
URL: 
http://svn.apache.org/viewvc/mina/branches/1.1/filter-ssl/src/main/java/org/apache/mina/filter/support/SSLHandler.java?view=diff&rev=560848&r1=560847&r2=560848
==============================================================================
--- 
mina/branches/1.1/filter-ssl/src/main/java/org/apache/mina/filter/support/SSLHandler.java
 (original)
+++ 
mina/branches/1.1/filter-ssl/src/main/java/org/apache/mina/filter/support/SSLHandler.java
 Sun Jul 29 20:12:24 2007
@@ -435,8 +435,11 @@
      * @param status
      * @throws SSLException
      */
-    private SSLEngineResult.Status checkStatus(SSLEngineResult.Status status)
+    private void checkStatus(NextFilter nextFilter, SSLEngineResult res)
             throws SSLException {
+        
+        SSLEngineResult.Status status = res.getStatus();
+        
         /*
          * The status may be:
          * OK - Normal operation
@@ -453,7 +456,11 @@
                     + appBuffer);
         }
 
-        return status;
+        if (res.getHandshakeStatus() != 
SSLEngineResult.HandshakeStatus.NOT_HANDSHAKING) {
+            // Renegotiation required.
+            SessionLog.debug(session, " Renegotiating...");
+            handshake(nextFilter);
+        }
     }
 
     /**
@@ -587,7 +594,7 @@
         return writeFuture;
     }
 
-    private SSLEngineResult.Status unwrap(NextFilter nextFilter) throws 
SSLException {
+    private void unwrap(NextFilter nextFilter) throws SSLException {
         if (SessionLog.isDebugEnabled(session)) {
             SessionLog.debug(session, " unwrap()");
         }
@@ -604,15 +611,7 @@
         // prepare app data to be read
         appBuffer.flip();
         
-        checkStatus(res.getStatus());
-        
-        if (res.getHandshakeStatus() != 
SSLEngineResult.HandshakeStatus.NOT_HANDSHAKING) {
-            // Renegotiation required.
-            SessionLog.debug(session, " Renegotiating...");
-            handshake(nextFilter);
-        }
-
-        return res.getStatus();
+        checkStatus(nextFilter, res);
     }
 
     private SSLEngineResult.Status unwrapHandshake(NextFilter nextFilter) 
throws SSLException {
@@ -643,8 +642,8 @@
         // prepare app data to be read
         appBuffer.flip();
 
-        //initialHandshakeStatus = res.getHandshakeStatus();
-        return checkStatus(res.getStatus());
+        checkStatus(nextFilter, res);
+        return res.getStatus();
     }
 
     private SSLEngineResult unwrap0() throws SSLException {

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SSLHandler.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SSLHandler.java?view=diff&rev=560848&r1=560847&r2=560848
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SSLHandler.java 
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SSLHandler.java 
Sun Jul 29 20:12:24 2007
@@ -441,8 +441,11 @@
      * @param status
      * @throws SSLException
      */
-    private SSLEngineResult.Status checkStatus(SSLEngineResult.Status status)
+    private void checkStatus(NextFilter nextFilter, SSLEngineResult res)
             throws SSLException {
+        
+        SSLEngineResult.Status status = res.getStatus();
+        
         /*
          * The status may be:
          * OK - Normal operation
@@ -459,7 +462,11 @@
                     + appBuffer);
         }
 
-        return status;
+        if (res.getHandshakeStatus() != 
SSLEngineResult.HandshakeStatus.NOT_HANDSHAKING) {
+            // Renegotiation required.
+            SessionLog.debug(session, " Renegotiating...");
+            handshake(nextFilter);
+        }
     }
 
     /**
@@ -597,7 +604,7 @@
         }
     }
 
-    private SSLEngineResult.Status unwrap(NextFilter nextFilter) throws 
SSLException {
+    private void unwrap(NextFilter nextFilter) throws SSLException {
         if (SessionLog.isDebugEnabled(session)) {
             SessionLog.debug(session, " unwrap()");
         }
@@ -614,15 +621,7 @@
         // prepare app data to be read
         appBuffer.flip();
         
-        checkStatus(res.getStatus());
-        
-        if (res.getHandshakeStatus() != 
SSLEngineResult.HandshakeStatus.NOT_HANDSHAKING) {
-            // Renegotiation required.
-            SessionLog.debug(session, " Renegotiating...");
-            handshake(nextFilter);
-        }
-
-        return res.getStatus();
+        checkStatus(nextFilter, res);
     }
 
     private SSLEngineResult.Status unwrapHandshake(NextFilter nextFilter) 
throws SSLException {
@@ -653,8 +652,8 @@
         // prepare app data to be read
         appBuffer.flip();
 
-        //initialHandshakeStatus = res.getHandshakeStatus();
-        return checkStatus(res.getStatus());
+        checkStatus(nextFilter, res);
+        return res.getStatus();
     }
 
     private SSLEngineResult unwrap0() throws SSLException {


Reply via email to