11// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22// SPDX-License-Identifier: Apache-2.0
33
4- use s2n_quic:: provider:: tls:: s2n_tls:: { ConfigLoader , ConnectionContext , Server } ;
4+ use s2n_quic:: provider:: tls:: s2n_tls:: Server ;
55use std:: { error:: Error , time:: SystemTime } ;
66
77pub static CERT_PEM : & str = include_str ! ( concat!(
@@ -17,35 +17,18 @@ pub static KEY_PEM: &str = include_str!(concat!(
1717pub static TICKET_KEY : [ u8 ; 16 ] = [ 0 ; 16 ] ;
1818pub static TICKET_KEY_NAME : & [ u8 ] = "keyname" . as_bytes ( ) ;
1919
20- struct ResumptionConfig ;
21-
22- impl ResumptionConfig {
23- fn build ( ) -> Result < s2n_tls:: config:: Config , s2n_tls:: error:: Error > {
24- let mut config_builder = s2n_tls:: config:: Builder :: new ( ) ;
25- config_builder
26- . enable_session_tickets ( true ) ?
27- . add_session_ticket_key ( TICKET_KEY_NAME , & TICKET_KEY , SystemTime :: now ( ) ) ?
28- . load_pem ( CERT_PEM . as_bytes ( ) , KEY_PEM . as_bytes ( ) ) ?
29- . set_security_policy ( & s2n_tls:: security:: DEFAULT_TLS13 ) ?
30- . enable_quic ( ) ?
31- . set_application_protocol_preference ( [ b"h3" ] ) ?;
32- config_builder. build ( )
33- }
34- }
35-
36- impl ConfigLoader for ResumptionConfig {
37- fn load ( & mut self , _cx : ConnectionContext ) -> s2n_tls:: config:: Config {
38- Self :: build ( ) . expect ( "Config builder failed" )
39- }
40- }
41-
4220#[ tokio:: main]
4321async fn main ( ) -> Result < ( ) , Box < dyn Error > > {
44- let tls = Server :: from_loader ( ResumptionConfig ) ;
22+ let mut tls = Server :: builder ( ) . with_certificate ( CERT_PEM , KEY_PEM ) ?;
23+
24+ tls. config_mut ( )
25+ . add_session_ticket_key ( TICKET_KEY_NAME , & TICKET_KEY , SystemTime :: now ( ) ) ?;
26+
4527 let mut server = s2n_quic:: Server :: builder ( )
46- . with_tls ( tls) ?
28+ . with_tls ( tls. build ( ) ? ) ?
4729 . with_io ( "127.0.0.1:4433" ) ?
4830 . start ( ) ?;
31+
4932 while let Some ( mut connection) = server. accept ( ) . await {
5033 // spawn a new task for the connection
5134 tokio:: spawn ( async move {
0 commit comments