@@ -15,7 +15,7 @@ use crate::{
1515 config:: { PeerConfig , PeerId } ,
1616 handshake:: { Handshake , ReceivedHandshake , SessionPair , initiate_handshake} ,
1717 macs:: { MACReceiver , MACSender } ,
18- messages:: { CookieReply , HandshakeResponse , Message , SessionId } ,
18+ messages:: { CookieReply , HandshakeResponse , Message , MessageMut , SessionId } ,
1919 session:: { ReceiveSession , TransmitSession } ,
2020 time:: { TAI64N , TAI64NClock } ,
2121} ;
@@ -347,21 +347,21 @@ impl Peer {
347347 ) {
348348 let pre_len = packets. len ( ) ;
349349
350- packets. retain_mut ( |packet| match Message :: try_from ( packet. as_ref ( ) ) {
350+ packets. retain_mut ( |packet| match MessageMut :: try_from ( packet. as_mut ( ) ) {
351351 Err ( ( ) ) => {
352352 tracing:: trace!( "dropping invalid packet" ) ;
353353 false
354354 }
355- Ok ( Message :: TransportDataHeader ( _) ) => true ,
356- Ok ( Message :: HandshakeResponse ( resp) ) => {
355+ Ok ( MessageMut :: TransportDataHeader ( _) ) => true ,
356+ Ok ( MessageMut :: HandshakeResponse ( resp) ) => {
357357 self . recv_handshake_response ( endpoint, resp, out) ;
358358 false
359359 }
360- Ok ( Message :: CookieReply ( resp) ) => {
360+ Ok ( MessageMut :: CookieReply ( resp) ) => {
361361 self . recv_cookie_reply ( resp) ;
362362 false
363363 }
364- Ok ( Message :: HandshakeInitiation ( _) ) => {
364+ Ok ( MessageMut :: HandshakeInitiation ( _) ) => {
365365 debug_assert ! (
366366 false ,
367367 "handshake initiations should have been filtered out prior to calling recv"
@@ -390,11 +390,12 @@ impl Peer {
390390 fn recv_handshake_response (
391391 & mut self ,
392392 endpoint : & mut EndpointState ,
393- packet : & HandshakeResponse ,
393+ packet : & mut HandshakeResponse ,
394394 out : & mut RecvResult ,
395395 ) {
396396 let Some ( session) = self . handshake . finish (
397397 packet,
398+ & endpoint. my_key . private ,
398399 & self . config . psk ,
399400 & endpoint. my_cookie ,
400401 Instant :: now ( ) ,
@@ -657,8 +658,9 @@ impl Endpoint {
657658 ret
658659 }
659660
660- fn process_one_handshake ( & mut self , packet : PacketMut , out : & mut RecvResult ) {
661- let Ok ( Message :: HandshakeInitiation ( init) ) = Message :: try_from ( packet. as_ref ( ) ) else {
661+ fn process_one_handshake ( & mut self , mut packet : PacketMut , out : & mut RecvResult ) {
662+ let Ok ( MessageMut :: HandshakeInitiation ( init) ) = MessageMut :: try_from ( packet. as_mut ( ) )
663+ else {
662664 tracing:: error!( "message parsing failed" ) ;
663665 return ;
664666 } ;
0 commit comments