@@ -22,7 +22,10 @@ use futures_lite::{future::Boxed, StreamExt};
2222use indicatif:: {
2323 HumanBytes , HumanDuration , MultiProgress , ProgressBar , ProgressDrawTarget , ProgressStyle ,
2424} ;
25- use iroh:: { Endpoint , NodeAddr , RelayMap , RelayMode , RelayUrl , SecretKey } ;
25+ use iroh:: {
26+ discovery:: { dns:: DnsDiscovery , pkarr:: PkarrPublisher } ,
27+ Endpoint , NodeAddr , RelayMap , RelayMode , RelayUrl , SecretKey ,
28+ } ;
2629use iroh_blobs:: {
2730 format:: collection:: Collection ,
2831 get:: {
@@ -582,6 +585,10 @@ async fn send(args: SendArgs) -> anyhow::Result<()> {
582585 . alpns ( vec ! [ iroh_blobs:: protocol:: ALPN . to_vec( ) ] )
583586 . secret_key ( secret_key)
584587 . relay_mode ( args. common . relay . into ( ) ) ;
588+ if args. ticket_type == AddrInfoOptions :: Id {
589+ builder =
590+ builder. add_discovery ( |secret_key| Some ( PkarrPublisher :: n0_dns ( secret_key. clone ( ) ) ) ) ;
591+ }
585592 if let Some ( addr) = args. common . magic_ipv4_addr {
586593 builder = builder. bind_addr_v4 ( addr) ;
587594 }
@@ -779,6 +786,9 @@ async fn receive(args: ReceiveArgs) -> anyhow::Result<()> {
779786 . secret_key ( secret_key)
780787 . relay_mode ( args. common . relay . into ( ) ) ;
781788
789+ if ticket. node_addr ( ) . relay_url . is_none ( ) && ticket. node_addr ( ) . direct_addresses . is_empty ( ) {
790+ builder = builder. add_discovery ( |_| Some ( DnsDiscovery :: n0_dns ( ) ) ) ;
791+ }
782792 if let Some ( addr) = args. common . magic_ipv4_addr {
783793 builder = builder. bind_addr_v4 ( addr) ;
784794 }
@@ -875,6 +885,9 @@ async fn main() -> anyhow::Result<()> {
875885 Commands :: Send ( args) => send ( args) . await ,
876886 Commands :: Receive ( args) => receive ( args) . await ,
877887 } ;
888+ if let Err ( e) = & res {
889+ eprintln ! ( "{e}" ) ;
890+ }
878891 match res {
879892 Ok ( ( ) ) => std:: process:: exit ( 0 ) ,
880893 Err ( _) => std:: process:: exit ( 1 ) ,
0 commit comments