@@ -39,7 +39,7 @@ use n0_future::{
3939use n0_watcher:: { Watchable , Watcher } ;
4040use tokio:: task:: JoinSet ;
4141use tokio_util:: sync:: CancellationToken ;
42- use tracing:: { debug, trace} ;
42+ use tracing:: { debug, trace, warn } ;
4343
4444#[ cfg( not( wasm_browser) ) ]
4545use self :: reportgen:: QadProbeReport ;
@@ -489,45 +489,71 @@ impl Client {
489489 biased;
490490
491491 val = v4_buf. join_next( ) , if !v4_buf. is_empty( ) => {
492- if let Some ( Ok ( Some ( Ok ( res) ) ) ) = val {
493- match res {
494- Ok ( ( r, conn) ) => {
495- debug!( ?r, "got v4 QAD conn" ) ;
496- let url = r. node. clone( ) ;
497- reports. push( ProbeReport :: QadIpv4 ( r) ) ;
498- if self . qad_conns. v4. is_none( ) {
499- self . qad_conns. v4. replace( ( url, conn) ) ;
500- } else {
501- conn. conn. close( QUIC_ADDR_DISC_CLOSE_CODE , QUIC_ADDR_DISC_CLOSE_REASON ) ;
492+ match val {
493+ Some ( Ok ( Some ( Ok ( res) ) ) ) => {
494+ match res {
495+ Ok ( ( r, conn) ) => {
496+ debug!( ?r, "got v4 QAD conn" ) ;
497+ let url = r. node. clone( ) ;
498+ reports. push( ProbeReport :: QadIpv4 ( r) ) ;
499+ if self . qad_conns. v4. is_none( ) {
500+ self . qad_conns. v4. replace( ( url, conn) ) ;
501+ } else {
502+ conn. conn. close( QUIC_ADDR_DISC_CLOSE_CODE , QUIC_ADDR_DISC_CLOSE_REASON ) ;
503+ }
504+ }
505+ Err ( err) => {
506+ debug!( "probe v4 failed: {:?}" , err) ;
502507 }
503508 }
504- Err ( err) => {
505- debug!( "probe v4 failed: {:?}" , err) ;
509+ }
510+ Some ( Err ( err) ) => {
511+ if err. is_panic( ) {
512+ panic!( "probe v4 paniced: {:?}" , err) ;
506513 }
514+ warn!( "probe v4 failed: {:?}" , err) ;
515+ }
516+ Some ( Ok ( None ) ) => {
517+ debug!( "probe v4 canceled" ) ;
518+ }
519+ Some ( Ok ( Some ( Err ( time:: Elapsed { .. } ) ) ) ) => {
520+ debug!( "probe v4 timed out" ) ;
507521 }
508- } else {
509- dbg!( val) ;
522+ None => { }
510523 }
511524 }
512525 val = v6_buf. join_next( ) , if !v6_buf. is_empty( ) => {
513- if let Some ( Ok ( Some ( Ok ( res) ) ) ) = val {
514- match res {
515- Ok ( ( r, conn) ) => {
516- debug!( ?r, "got v6 QAD conn" ) ;
517- let url = r. node. clone( ) ;
518- reports. push( ProbeReport :: QadIpv6 ( r) ) ;
519- if self . qad_conns. v6. is_none( ) {
520- self . qad_conns. v6. replace( ( url, conn) ) ;
521- } else {
522- conn. conn. close( QUIC_ADDR_DISC_CLOSE_CODE , QUIC_ADDR_DISC_CLOSE_REASON ) ;
526+ match val {
527+ Some ( Ok ( Some ( Ok ( res) ) ) ) => {
528+ match res {
529+ Ok ( ( r, conn) ) => {
530+ debug!( ?r, "got v6 QAD conn" ) ;
531+ let url = r. node. clone( ) ;
532+ reports. push( ProbeReport :: QadIpv6 ( r) ) ;
533+ if self . qad_conns. v6. is_none( ) {
534+ self . qad_conns. v6. replace( ( url, conn) ) ;
535+ } else {
536+ conn. conn. close( QUIC_ADDR_DISC_CLOSE_CODE , QUIC_ADDR_DISC_CLOSE_REASON ) ;
537+ }
538+ }
539+ Err ( err) => {
540+ debug!( "probe v6 failed: {:?}" , err) ;
523541 }
524542 }
525- Err ( err) => {
526- debug!( "probe v6 failed: {:?}" , err) ;
543+ }
544+ Some ( Err ( err) ) => {
545+ if err. is_panic( ) {
546+ panic!( "probe v6 paniced: {:?}" , err) ;
527547 }
548+ warn!( "probe v6 failed: {:?}" , err) ;
549+ }
550+ Some ( Ok ( None ) ) => {
551+ debug!( "probe v6 canceled" ) ;
552+ }
553+ Some ( Ok ( Some ( Err ( time:: Elapsed { .. } ) ) ) ) => {
554+ debug!( "probe v6 timed out" ) ;
528555 }
529- } else {
530- dbg!( val) ;
556+ None => { }
531557 }
532558 }
533559 else => {
0 commit comments