You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by od...@apache.org on 2010/09/15 18:40:15 UTC

svn commit: r997392 - in /harmony/enhanced/java/branches/omd/classlib/modules/x-net/src/main/java/org/apache/harmony/xnet/provider/jsse: SSLEngineImpl.java SSLSessionImpl.java

Author: odeakin
Date: Wed Sep 15 16:40:15 2010
New Revision: 997392

URL: http://svn.apache.org/viewvc?rev=997392&view=rev
Log:
Start to add session awareness to SSLEngineImpl.

Modified:
    harmony/enhanced/java/branches/omd/classlib/modules/x-net/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLEngineImpl.java
    harmony/enhanced/java/branches/omd/classlib/modules/x-net/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLSessionImpl.java

Modified: harmony/enhanced/java/branches/omd/classlib/modules/x-net/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLEngineImpl.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/omd/classlib/modules/x-net/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLEngineImpl.java?rev=997392&r1=997391&r2=997392&view=diff
==============================================================================
--- harmony/enhanced/java/branches/omd/classlib/modules/x-net/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLEngineImpl.java (original)
+++ harmony/enhanced/java/branches/omd/classlib/modules/x-net/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLEngineImpl.java Wed Sep 15 16:40:15 2010
@@ -131,22 +131,27 @@ public class SSLEngineImpl extends SSLEn
         if (!handshake_started) {
             handshake_started = true;
 
+            SSLSessionContextImpl sessionContext;
             if (sslParameters.getUseClientMode()) {
                 if (logger != null) {
                     logger.println("SSLEngineImpl: CLIENT connecting");
                 }
 
                 handshakeStatus = connectImpl(SSL);
+                sessionContext = sslParameters.getClientSessionContext();
             } else {
                 if (logger != null) {
                     logger.println("SSLEngineImpl: SERVER accepting connection");
                 }
                 handshakeStatus = acceptImpl(SSL);
+                sessionContext = sslParameters.getServerSessionContext();
             }
+            session = new SSLSessionImpl(sslParameters, SSL);
+            sessionContext.putSession(session);
         }
     }
 
-    private static native void closeInboundImpl(long SSLEngineAddress);    
+    private static native void closeInboundImpl(long SSLEngineAddress);
 
     /**
      * Closes inbound operations of this engine

Modified: harmony/enhanced/java/branches/omd/classlib/modules/x-net/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLSessionImpl.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/omd/classlib/modules/x-net/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLSessionImpl.java?rev=997392&r1=997391&r2=997392&view=diff
==============================================================================
--- harmony/enhanced/java/branches/omd/classlib/modules/x-net/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLSessionImpl.java (original)
+++ harmony/enhanced/java/branches/omd/classlib/modules/x-net/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLSessionImpl.java Wed Sep 15 16:40:15 2010
@@ -192,13 +192,19 @@ public class SSLSessionImpl implements S
     private SSLSessionImpl() {
         creationTime = System.currentTimeMillis();
         cipherName = "SSL_NULL_WITH_NULL_NULL";
+        protocol = "NONE";
         id = new byte[0];
     }
 
-    public SSLSessionImpl(SSLSocket socket, SSLParameters parms, long SSL) {
+    public SSLSessionImpl(SSLParameters parms, long SSL) {
         sslParameters = parms;
         this.SSL = SSL;
 
+        // Initialise defaults for peer.
+        // These will be set later if an SSLSocket is construting this session
+        peerPort = -1;
+        peerHost = null;
+
         this.isServer = !sslParameters.getUseClientMode();
 
         if (SSL == 0) {
@@ -224,11 +230,6 @@ public class SSLSessionImpl implements S
             id[30] = (byte) ((time & 0x0000FF00) >>> 8);
             id[31] = (byte) ((time & 0x000000FF));
 
-            if (socket != null) {
-                peerPort = socket.getPort();
-                peerHost = socket.getInetAddress().getHostName();
-            }
-
             // Get the list of DER encoded peer certificates from OpenSSL
             Object[] DERCerts = getPeerCertificatesImpl(SSL);
             if (DERCerts != null) {
@@ -254,6 +255,14 @@ public class SSLSessionImpl implements S
         localCertificates = parms.getCertificateChain();
     }
 
+    public SSLSessionImpl(SSLSocket socket, SSLParameters parms, long SSL) {
+        this(parms, SSL);
+        if (socket != null) {
+            peerPort = socket.getPort();
+            peerHost = socket.getInetAddress().getHostName();
+        }
+    }
+
     public int getApplicationBufferSize() {
         return MAX_DATA_LENGTH;
     }