@@ -1713,54 +1713,50 @@ mod tests {
17131713 #[ tokio:: test]
17141714 #[ traced_test]
17151715 async fn test_0rtt_after_server_restart ( ) -> Result {
1716- for x in 0 ..5 {
1717- tracing:: info!( "Loop {x}" ) ;
1718- let ( relay_map, _relay_url, _guard) = run_relay_server ( ) . await ?;
1719- let relay_mode = RelayMode :: Custom ( relay_map) ;
1720- let mut rng = rand_chacha:: ChaCha8Rng :: seed_from_u64 ( 42 ) ;
1721- let client = Endpoint :: empty_builder ( relay_mode. clone ( ) )
1722- . secret_key ( SecretKey :: generate ( & mut rng) )
1723- . insecure_skip_relay_cert_verify ( true )
1724- . path_selection ( crate :: endpoint:: PathSelection :: RelayOnly )
1725- . bind ( )
1726- . instrument ( info_span ! ( "client" ) )
1727- . await ?;
1728- let server_key = SecretKey :: generate ( & mut rng) ;
1729- let server = spawn_0rtt_server (
1730- server_key. clone ( ) ,
1731- relay_mode. clone ( ) ,
1732- info_span ! ( "server-initial" ) ,
1733- )
1716+ let ( relay_map, _relay_url, _guard) = run_relay_server ( ) . await ?;
1717+ let relay_mode = RelayMode :: Custom ( relay_map) ;
1718+ let mut rng = rand_chacha:: ChaCha8Rng :: seed_from_u64 ( 42 ) ;
1719+ let client = Endpoint :: empty_builder ( relay_mode. clone ( ) )
1720+ . secret_key ( SecretKey :: generate ( & mut rng) )
1721+ . insecure_skip_relay_cert_verify ( true )
1722+ . path_selection ( crate :: endpoint:: PathSelection :: RelayOnly )
1723+ . bind ( )
1724+ . instrument ( info_span ! ( "client" ) )
17341725 . await ?;
1735- tokio:: join!( client. online( ) , server. online( ) ) ;
1736-
1737- connect_client_0rtt_expect_err ( & client, server. addr ( ) )
1738- . instrument ( trace_span ! ( "connect1" ) )
1739- . await
1740- . context ( "client connect 1" ) ?;
1741- connect_client_0rtt_expect_ok ( & client, server. addr ( ) , true )
1742- . instrument ( trace_span ! ( "connect2" ) )
1743- . await
1744- . context ( "client connect 2" ) ?;
1745-
1746- // adds time to the test, but we need to ensure the server is fully closed before spawning the next one.
1747- server. close ( ) . await ;
1748-
1749- let server =
1750- spawn_0rtt_server ( server_key, relay_mode. clone ( ) , info_span ! ( "server-restart" ) )
1751- . await ?;
1752- server. online ( ) . await ;
1753-
1754- // we expect the client to *believe* it can 0-RTT connect to the server (hence expect_ok),
1755- // but the server will reject the early data because it discarded necessary state
1756- // to decrypt it when restarting.
1757- connect_client_0rtt_expect_ok ( & client, server. id ( ) . into ( ) , false )
1758- . instrument ( trace_span ! ( "connect3" ) )
1759- . await
1760- . context ( "client connect 3" ) ?;
1761-
1762- tokio:: join!( client. close( ) , server. close( ) ) ;
1763- }
1726+ let server_key = SecretKey :: generate ( & mut rng) ;
1727+ let server = spawn_0rtt_server (
1728+ server_key. clone ( ) ,
1729+ relay_mode. clone ( ) ,
1730+ info_span ! ( "server-initial" ) ,
1731+ )
1732+ . await ?;
1733+ tokio:: join!( client. online( ) , server. online( ) ) ;
1734+
1735+ connect_client_0rtt_expect_err ( & client, server. addr ( ) )
1736+ . instrument ( trace_span ! ( "connect1" ) )
1737+ . await
1738+ . context ( "client connect 1" ) ?;
1739+ connect_client_0rtt_expect_ok ( & client, server. addr ( ) , true )
1740+ . instrument ( trace_span ! ( "connect2" ) )
1741+ . await
1742+ . context ( "client connect 2" ) ?;
1743+
1744+ // adds time to the test, but we need to ensure the server is fully closed before spawning the next one.
1745+ server. close ( ) . await ;
1746+
1747+ let server =
1748+ spawn_0rtt_server ( server_key, relay_mode. clone ( ) , info_span ! ( "server-restart" ) ) . await ?;
1749+ server. online ( ) . await ;
1750+
1751+ // we expect the client to *believe* it can 0-RTT connect to the server (hence expect_ok),
1752+ // but the server will reject the early data because it discarded necessary state
1753+ // to decrypt it when restarting.
1754+ connect_client_0rtt_expect_ok ( & client, server. id ( ) . into ( ) , false )
1755+ . instrument ( trace_span ! ( "connect3" ) )
1756+ . await
1757+ . context ( "client connect 3" ) ?;
1758+
1759+ tokio:: join!( client. close( ) , server. close( ) ) ;
17641760 Ok ( ( ) )
17651761 }
17661762}
0 commit comments