Author: elecharny
Date: Tue Dec 20 00:44:32 2011
New Revision: 1221052

URL: http://svn.apache.org/viewvc?rev=1221052&view=rev
Log:
Applied patch from DIRMINA-880

Modified:
    
mina/branches/2.0/mina-core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java

Modified: 
mina/branches/2.0/mina-core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java
URL: 
http://svn.apache.org/viewvc/mina/branches/2.0/mina-core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java?rev=1221052&r1=1221051&r2=1221052&view=diff
==============================================================================
--- 
mina/branches/2.0/mina-core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java
 (original)
+++ 
mina/branches/2.0/mina-core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java
 Tue Dec 20 00:44:32 2011
@@ -464,7 +464,7 @@ public class SslFilter extends IoFilterA
         
         synchronized (handler) {
             if (!isSslStarted(session) && handler.isInboundDone()) {
-                // The SSL session must be established first before we 
+                // The SSL session must be established first before we
                 // can push data to the application. Store the incoming
                 // data into a queue for a later processing
                 handler.scheduleMessageReceived(nextFilter, message);
@@ -568,10 +568,13 @@ public class SslFilter extends IoFilterA
         
         IoBuffer buf = (IoBuffer) message;
         int offset = buf.position();
-        return buf.remaining() == 23 &&
-               buf.get(offset + 0) == 0x15 && buf.get(offset + 1) == 0x03 &&
-               buf.get(offset + 2) == 0x01 && buf.get(offset + 3) == 0x00 &&
-               buf.get(offset + 4) == 0x12;
+        return (buf.get(offset + 0) == 0x15)         /* Alert */
+               && (buf.get(offset + 1) == 0x03)      /* TLS/SSL */
+               && ((buf.get(offset + 2) == 0x00)    /* SSL 3.0 */
+                   || (buf.get(offset + 2) == 0x01)  /* TLS 1.0 */
+                   || (buf.get(offset + 2) == 0x02)  /* TLS 1.1 */
+                   || (buf.get(offset + 2) == 0x03)) /* TLS 1.2 */
+               && (buf.get(offset + 3) == 0x00);     /* close_notify */
     }
 
     @Override


Reply via email to