Skip to content

Commit 7e17ea6

Browse files
authored
iroh-gateway: add support for passing node ticket or node id to --default-node (#48)
* fix node ticket parsing * enable discovery and support for passing node_id to --default-node
1 parent a96527c commit 7e17ea6

File tree

1 file changed

+16
-12
lines changed

1 file changed

+16
-12
lines changed

iroh-gateway/src/main.rs

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,16 @@ use hyper::body::Incoming;
1717
use hyper_util::rt::{TokioExecutor, TokioIo};
1818
use iroh::bytes::{store::bao_tree::ChunkNum, BlobFormat};
1919
use iroh::{
20+
base::key::NodeId,
2021
bytes::{
2122
format::collection::Collection,
2223
get::fsm::{BlobContentNext, ConnectedNext, DecodeError, EndBlobNext},
2324
protocol::RangeSpecSeq,
2425
store::bao_tree::io::fsm::BaoContentItem,
2526
Hash,
2627
},
27-
net::{MagicEndpoint, NodeAddr},
28-
ticket::BlobTicket,
28+
net::{discovery::dns::DnsDiscovery, MagicEndpoint, NodeAddr},
29+
ticket::{BlobTicket, NodeTicket},
2930
};
3031
use lru::LruCache;
3132
use mime::Mime;
@@ -513,19 +514,22 @@ async fn main() -> anyhow::Result<()> {
513514
tracing_subscriber::fmt::init();
514515
let args = args::Args::parse();
515516
let magic_port = args.magic_port.unwrap_or_default();
516-
let endpoint = MagicEndpoint::builder().bind(magic_port).await?;
517+
let endpoint = MagicEndpoint::builder()
518+
.discovery(Box::new(DnsDiscovery::n0_dns()))
519+
.bind(magic_port)
520+
.await?;
517521
let default_node = args
518522
.default_node
519523
.map(|default_node| {
520-
Ok(
521-
if let Ok(node_ticket) = default_node.parse::<BlobTicket>() {
522-
node_ticket.node_addr().clone()
523-
} else if let Ok(blob_ticket) = default_node.parse::<BlobTicket>() {
524-
blob_ticket.node_addr().clone()
525-
} else {
526-
anyhow::bail!("invalid default node");
527-
},
528-
)
524+
Ok(if let Ok(node_id) = default_node.parse::<NodeId>() {
525+
node_id.into()
526+
} else if let Ok(node_ticket) = default_node.parse::<NodeTicket>() {
527+
node_ticket.node_addr().clone()
528+
} else if let Ok(blob_ticket) = default_node.parse::<BlobTicket>() {
529+
blob_ticket.node_addr().clone()
530+
} else {
531+
anyhow::bail!("invalid default node");
532+
})
529533
})
530534
.transpose()?;
531535
let gateway = Gateway(Arc::new(Inner {

0 commit comments

Comments
 (0)