@@ -50,10 +50,6 @@ public DTLSTransport accept(TlsServer server, DatagramTransport transport, DTLSR
5050
5151 TlsServerContextImpl serverContext = new TlsServerContextImpl (server .getCrypto ());
5252
53- ServerHandshakeState state = new ServerHandshakeState ();
54- state .server = server ;
55- state .serverContext = serverContext ;
56-
5753 server .init (serverContext );
5854 serverContext .handshakeBeginning (server );
5955
@@ -63,9 +59,14 @@ public DTLSTransport accept(TlsServer server, DatagramTransport transport, DTLSR
6359 DTLSRecordLayer recordLayer = new DTLSRecordLayer (serverContext , server , transport );
6460 server .notifyCloseHandle (recordLayer );
6561
62+ ServerHandshakeState state = new ServerHandshakeState ();
63+ state .server = server ;
64+ state .serverContext = serverContext ;
65+ state .recordLayer = recordLayer ;
66+
6667 try
6768 {
68- return serverHandshake (state , recordLayer , request );
69+ return serverHandshake (state , request );
6970 }
7071 catch (TlsFatalAlertReceived fatalAlertReceived )
7172 {
@@ -75,17 +76,17 @@ public DTLSTransport accept(TlsServer server, DatagramTransport transport, DTLSR
7576 }
7677 catch (TlsFatalAlert fatalAlert )
7778 {
78- abortServerHandshake (state , recordLayer , fatalAlert .getAlertDescription ());
79+ abortServerHandshake (state , fatalAlert .getAlertDescription ());
7980 throw fatalAlert ;
8081 }
8182 catch (IOException e )
8283 {
83- abortServerHandshake (state , recordLayer , AlertDescription .internal_error );
84+ abortServerHandshake (state , AlertDescription .internal_error );
8485 throw e ;
8586 }
8687 catch (RuntimeException e )
8788 {
88- abortServerHandshake (state , recordLayer , AlertDescription .internal_error );
89+ abortServerHandshake (state , AlertDescription .internal_error );
8990 throw new TlsFatalAlert (AlertDescription .internal_error , e );
9091 }
9192 finally
@@ -94,17 +95,17 @@ public DTLSTransport accept(TlsServer server, DatagramTransport transport, DTLSR
9495 }
9596 }
9697
97- protected void abortServerHandshake (ServerHandshakeState state , DTLSRecordLayer recordLayer , short alertDescription )
98+ protected void abortServerHandshake (ServerHandshakeState state , short alertDescription )
9899 {
99- recordLayer .fail (alertDescription );
100+ state . recordLayer .fail (alertDescription );
100101 invalidateSession (state );
101102 }
102103
103- protected DTLSTransport serverHandshake (ServerHandshakeState state , DTLSRecordLayer recordLayer ,
104- DTLSRequest request ) throws IOException
104+ protected DTLSTransport serverHandshake (ServerHandshakeState state , DTLSRequest request ) throws IOException
105105 {
106106 TlsServer server = state .server ;
107107 TlsServerContextImpl serverContext = state .serverContext ;
108+ DTLSRecordLayer recordLayer = state .recordLayer ;
108109 SecurityParameters securityParameters = serverContext .getSecurityParametersHandshake ();
109110
110111 DTLSReliableHandshake handshake = new DTLSReliableHandshake (serverContext , recordLayer ,
@@ -138,7 +139,7 @@ protected DTLSTransport serverHandshake(ServerHandshakeState state, DTLSRecordLa
138139 }
139140
140141 {
141- byte [] serverHelloBody = generateServerHello (state , recordLayer );
142+ byte [] serverHelloBody = generateServerHello (state );
142143
143144 // TODO[dtls13] Ideally, move this into generateServerHello once legacy_record_version clarified
144145 {
@@ -452,7 +453,7 @@ protected byte[] generateNewSessionTicket(ServerHandshakeState state, NewSession
452453 return buf .toByteArray ();
453454 }
454455
455- protected byte [] generateServerHello (ServerHandshakeState state , DTLSRecordLayer recordLayer )
456+ protected byte [] generateServerHello (ServerHandshakeState state )
456457 throws IOException
457458 {
458459 TlsServer server = state .server ;
@@ -710,7 +711,7 @@ else if (TlsUtils.hasExpectedEmptyExtensionData(state.serverExtensions,
710711
711712 state .clientHello = null ;
712713
713- applyMaxFragmentLengthExtension (recordLayer , securityParameters .getMaxFragmentLength ());
714+ applyMaxFragmentLengthExtension (state . recordLayer , securityParameters .getMaxFragmentLength ());
714715
715716 ByteArrayOutputStream buf = new ByteArrayOutputStream ();
716717 serverHello .encode (serverContext , buf );
@@ -1020,6 +1021,7 @@ protected static class ServerHandshakeState
10201021 {
10211022 TlsServer server = null ;
10221023 TlsServerContextImpl serverContext = null ;
1024+ DTLSRecordLayer recordLayer = null ;
10231025 TlsSession tlsSession = null ;
10241026 SessionParameters sessionParameters = null ;
10251027 TlsSecret sessionMasterSecret = null ;
0 commit comments