src/java.base/share/classes/sun/security/ssl/TransportContext.java
branchJDK-8145252-TLS13-branch
changeset 56718 da9979451b7a
parent 56715 b152d06ed6a9
child 56750 2b4ae319412b
equal deleted inserted replaced
56717:e4fe7c97b1de 56718:da9979451b7a
    84     CipherSuite cipherSuite;
    84     CipherSuite cipherSuite;
    85     private static final byte[] emptyByteArray = new byte[0];
    85     private static final byte[] emptyByteArray = new byte[0];
    86 
    86 
    87     // Please never use the transport parameter other than storing a
    87     // Please never use the transport parameter other than storing a
    88     // reference to this object.
    88     // reference to this object.
       
    89     //
    89     // Called by SSLEngineImpl
    90     // Called by SSLEngineImpl
    90     TransportContext(SSLContextImpl sslContext, SSLTransport transport,
    91     TransportContext(SSLContextImpl sslContext, SSLTransport transport,
    91             InputRecord inputRecord, OutputRecord outputRecord) {
    92             InputRecord inputRecord, OutputRecord outputRecord) {
    92         this(sslContext, transport, new SSLConfiguration(sslContext, true),
    93         this(sslContext, transport, new SSLConfiguration(sslContext, true),
    93                 inputRecord, outputRecord, true);
    94                 inputRecord, outputRecord, true);
    94     }
    95     }
    95 
    96 
    96     // Please never use the transport parameter other than storing a
    97     // Please never use the transport parameter other than storing a
    97     // reference to this object.
    98     // reference to this object.
       
    99     //
    98     // Called by SSLSocketImpl
   100     // Called by SSLSocketImpl
    99     TransportContext(SSLContextImpl sslContext, SSLTransport transport,
   101     TransportContext(SSLContextImpl sslContext, SSLTransport transport,
   100             InputRecord inputRecord, OutputRecord outputRecord,
   102             InputRecord inputRecord, OutputRecord outputRecord,
   101             boolean isClientMode) {
   103             boolean isClientMode) {
   102         this(sslContext, transport,
   104         this(sslContext, transport,
   103                 new SSLConfiguration(sslContext, isClientMode),
   105                 new SSLConfiguration(sslContext, isClientMode),
   104                 inputRecord, outputRecord,false);
   106                 inputRecord, outputRecord, false);
   105     }
   107     }
   106 
   108 
   107     // Please never use the transport parameter other than storing a
   109     // Please never use the transport parameter other than storing a
   108     // reference to this object.
   110     // reference to this object.
       
   111     //
   109     // Called by SSLSocketImpl with an existing SSLConfig
   112     // Called by SSLSocketImpl with an existing SSLConfig
   110     TransportContext(SSLContextImpl sslContext, SSLTransport transport,
   113     TransportContext(SSLContextImpl sslContext, SSLTransport transport,
   111             SSLConfiguration sslConfig,
   114             SSLConfiguration sslConfig,
   112             InputRecord inputRecord, OutputRecord outputRecord) {
   115             InputRecord inputRecord, OutputRecord outputRecord) {
   113         this(sslContext, transport, (SSLConfiguration)sslConfig.clone(),
   116         this(sslContext, transport, (SSLConfiguration)sslConfig.clone(),
   634     }
   637     }
   635 
   638 
   636     // A separate thread is allocated to deliver handshake completion
   639     // A separate thread is allocated to deliver handshake completion
   637     // events.
   640     // events.
   638     private static class NotifyHandshake implements Runnable {
   641     private static class NotifyHandshake implements Runnable {
   639         private Set<Map.Entry<HandshakeCompletedListener,
   642         private final Set<Map.Entry<HandshakeCompletedListener,
   640                 AccessControlContext>> targets;         // who gets notified
   643                 AccessControlContext>> targets;         // who gets notified
   641         private HandshakeCompletedEvent event;          // the notification
   644         private final HandshakeCompletedEvent event;    // the notification
   642 
   645 
   643         NotifyHandshake(
   646         NotifyHandshake(
   644                 Map<HandshakeCompletedListener,AccessControlContext> listeners,
   647                 Map<HandshakeCompletedListener,AccessControlContext> listeners,
   645                 HandshakeCompletedEvent event) {
   648                 HandshakeCompletedEvent event) {
   646             this.targets = new HashSet<>(listeners.entrySet());     // clone
   649             this.targets = new HashSet<>(listeners.entrySet());     // clone