@@ -442,10 +442,14 @@ where
442442 _ = getrandom:: getrandom ( & mut tag_bytes) ;
443443 let tag = u64:: from_be_bytes ( tag_bytes) ;
444444
445- send_tagged_request ( tag, packet) . await
445+ send_tagged_request ( tag, packet, true ) . await
446446}
447447
448- pub async fn send_tagged_request < T > ( tag : u64 , packet : TimerPacketInner ) -> Result < T , ApiError >
448+ pub async fn send_tagged_request < T > (
449+ tag : u64 ,
450+ packet : TimerPacketInner ,
451+ timeout : bool ,
452+ ) -> Result < T , ApiError >
449453where
450454 T : FromPacket ,
451455{
@@ -455,13 +459,17 @@ where
455459 } ;
456460 send_packet ( packet) . await ;
457461
458- let packet = wait_for_tagged_response ( tag)
459- . with_timeout ( Duration :: from_millis ( 5000 ) )
460- . await
461- . map_err ( |_| ApiError {
462- should_reset_time : false ,
463- error : "Communication timeout!" . to_string ( ) ,
464- } ) ?;
462+ let packet = if timeout {
463+ wait_for_tagged_response ( tag)
464+ . with_timeout ( Duration :: from_millis ( 5000 ) )
465+ . await
466+ . map_err ( |_| ApiError {
467+ should_reset_time : false ,
468+ error : "Communication timeout!" . to_string ( ) ,
469+ } ) ?
470+ } else {
471+ wait_for_tagged_response ( tag) . await
472+ } ;
465473
466474 FromPacket :: from_packet ( packet)
467475}
0 commit comments