File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1612,18 +1612,20 @@ async fn reply<H: Handler>(
16121612 // This is a rekey
16131613 {
16141614 let common = & mut session. common ;
1615- let enc = common. encrypted . as_mut ( ) . expect ( "checked encrypted" ) ;
1616- enc. last_rekey = Instant :: now ( ) ;
1615+ common. newkeys ( newkeys) ;
16171616 common. packet_writer . buffer ( ) . bytes = 0 ;
1618- enc. flush_all_pending_with_writer ( & mut common. packet_writer ) ?;
1617+ if let Some ( enc) = common. encrypted . as_mut ( ) {
1618+ enc. last_rekey = Instant :: now ( ) ;
1619+ enc. flush_all_pending_with_writer ( & mut common. packet_writer ) ?;
1620+ }
16191621 }
1622+
16201623 let mut pending = std:: mem:: take ( & mut session. pending_reads ) ;
16211624 for p in pending. drain ( ..) {
16221625 session. process_packet ( handler, & p) . await ?;
16231626 }
16241627 session. pending_reads = pending;
16251628 session. pending_len = 0 ;
1626- session. common . newkeys ( newkeys) ;
16271629 } else {
16281630 // This is the initial kex
16291631 if let Some ( server_host_key) = & server_host_key {
Original file line number Diff line number Diff line change @@ -1120,10 +1120,12 @@ async fn reply<H: Handler + Send>(
11201120 // This is a rekey
11211121 {
11221122 let common = & mut session. common ;
1123- let enc = common. encrypted . as_mut ( ) . expect ( "checked encrypted" ) ;
1124- enc. last_rekey = Instant :: now ( ) ;
1123+ common. newkeys ( newkeys) ;
11251124 common. packet_writer . buffer ( ) . bytes = 0 ;
1126- enc. flush_all_pending_with_writer ( & mut common. packet_writer ) ?;
1125+ if let Some ( enc) = common. encrypted . as_mut ( ) {
1126+ enc. last_rekey = Instant :: now ( ) ;
1127+ enc. flush_all_pending_with_writer ( & mut common. packet_writer ) ?;
1128+ }
11271129 }
11281130
11291131 let mut pending = std:: mem:: take ( & mut session. pending_reads ) ;
@@ -1132,7 +1134,6 @@ async fn reply<H: Handler + Send>(
11321134 }
11331135 session. pending_reads = pending;
11341136 session. pending_len = 0 ;
1135- session. common . newkeys ( newkeys) ;
11361137 session. flush ( ) ?;
11371138 } else {
11381139 // This is the initial kex
You can’t perform that action at this time.
0 commit comments