Skip to content

Commit 435ade7

Browse files
authored
Merge aae6c79 into 1d79f92
2 parents 1d79f92 + aae6c79 commit 435ade7

File tree

9 files changed

+177
-256
lines changed

9 files changed

+177
-256
lines changed

Cargo.lock

Lines changed: 73 additions & 51 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

iroh-dns-server/Cargo.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ humantime-serde = "1.1.1"
3131
iroh-metrics = { version = "0.32.0", features = ["metrics", "service"] }
3232
lru = "0.12.3"
3333
n0-future = "0.1.2"
34-
pkarr = { version = "2.3.1", features = [ "async", "relay", "dht"], default-features = false }
34+
pkarr = { version = "3.7", features = ["relays", "dht"], default-features = false }
3535
rcgen = "0.13"
3636
redb = "2.0.0"
3737
regex = "1.10.3"
@@ -61,7 +61,6 @@ z32 = "1.1.1"
6161
criterion = "0.5.1"
6262
hickory-resolver = "0.25.0"
6363
iroh = { path = "../iroh" }
64-
pkarr = { version = "2.3.1", features = ["rand"] }
6564
rand = "0.8"
6665
rand_chacha = "0.3.1"
6766
testresult = "0.4.1"

iroh-dns-server/src/lib.rs

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ mod tests {
2626
discovery::pkarr::PkarrRelayClient, dns::DnsResolver, node_info::NodeInfo, RelayUrl,
2727
SecretKey,
2828
};
29-
use pkarr::{PkarrClient, SignedPacket};
29+
use pkarr::{SignedPacket, Timestamp};
3030
use testresult::TestResult;
3131
use tracing_test::traced_test;
3232

@@ -101,13 +101,13 @@ mod tests {
101101
30,
102102
dns::rdata::RData::AAAA(Ipv6Addr::LOCALHOST.into()),
103103
));
104-
SignedPacket::from_packet(&keypair, &packet)?
104+
SignedPacket::new(&keypair, &packet.answers, Timestamp::now())?
105105
};
106-
let pkarr_client = pkarr::PkarrRelayClient::new(pkarr::RelaySettings {
107-
relays: vec![pkarr_relay_url.to_string()],
108-
..Default::default()
109-
})?;
110-
pkarr_client.as_async().publish(&signed_packet).await?;
106+
let pkarr_client = pkarr::Client::builder()
107+
.no_default_network()
108+
.relays(&[pkarr_relay_url])?
109+
.build()?;
110+
pkarr_client.publish(&signed_packet, None).await?;
111111

112112
use hickory_server::proto::rr::Name;
113113
let pubkey = signed_packet.public_key().to_z32();
@@ -219,7 +219,7 @@ mod tests {
219219
#[traced_test]
220220
async fn integration_mainline() -> Result<()> {
221221
// run a mainline testnet
222-
let testnet = pkarr::mainline::dht::Testnet::new(5);
222+
let testnet = pkarr::mainline::Testnet::new_async(5).await?;
223223
let bootstrap = testnet.bootstrap.clone();
224224

225225
// spawn our server with mainline support
@@ -237,13 +237,11 @@ mod tests {
237237
let signed_packet = node_info.to_pkarr_signed_packet(&secret_key, 30)?;
238238

239239
// publish the signed packet to our DHT
240-
let pkarr = PkarrClient::builder()
241-
.dht_settings(pkarr::mainline::dht::DhtSettings {
242-
bootstrap: Some(testnet.bootstrap),
243-
..Default::default()
244-
})
240+
let pkarr = pkarr::Client::builder()
241+
.no_default_network()
242+
.dht(|builder| builder.bootstrap(&testnet.bootstrap))
245243
.build()?;
246-
pkarr.publish(&signed_packet)?;
244+
pkarr.publish(&signed_packet, None).await?;
247245

248246
// resolve via DNS from our server, which will lookup from our DHT
249247
let resolver = test_resolver(nameserver);
@@ -253,9 +251,6 @@ mod tests {
253251
assert_eq!(res.relay_url(), Some(&relay_url));
254252

255253
server.shutdown().await?;
256-
for mut node in testnet.nodes {
257-
node.shutdown()?;
258-
}
259254
Ok(())
260255
}
261256

iroh-dns-server/src/store.rs

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use anyhow::Result;
66
use hickory_server::proto::rr::{Name, RecordSet, RecordType, RrKey};
77
use iroh_metrics::inc;
88
use lru::LruCache;
9-
use pkarr::{mainline::dht::DhtSettings, PkarrClient, SignedPacket};
9+
use pkarr::{Client as PkarrClient, SignedPacket};
1010
use tokio::sync::Mutex;
1111
use tracing::{debug, trace};
1212
use ttl_cache::TtlCache;
@@ -66,10 +66,7 @@ impl ZoneStore {
6666
let pkarr_client = match bootstrap {
6767
BootstrapOption::Default => PkarrClient::builder().build().unwrap(),
6868
BootstrapOption::Custom(bootstrap) => PkarrClient::builder()
69-
.dht_settings(DhtSettings {
70-
bootstrap: Some(bootstrap),
71-
..Default::default()
72-
})
69+
.dht(|builder| builder.bootstrap(&bootstrap))
7370
.build()
7471
.unwrap(),
7572
};
@@ -116,9 +113,9 @@ impl ZoneStore {
116113
//
117114
// it will be cached for some time.
118115
debug!("DHT resolve {}", key.to_z32());
119-
let packet_opt = pkarr.as_ref().clone().as_async().resolve(&key).await?;
116+
let packet_opt = pkarr.resolve(&key).await;
120117
if let Some(packet) = packet_opt {
121-
debug!("DHT resolve successful {:?}", packet.packet());
118+
debug!("DHT resolve successful {:?}", packet);
122119
return self
123120
.cache
124121
.lock()
@@ -249,12 +246,12 @@ impl CachedZone {
249246
signed_packet_to_hickory_records_without_origin(signed_packet, |_| true)?;
250247
Ok(Self {
251248
records,
252-
timestamp: signed_packet.timestamp(),
249+
timestamp: signed_packet.timestamp().into(),
253250
})
254251
}
255252

256253
fn is_newer_than(&self, signed_packet: &SignedPacket) -> bool {
257-
self.timestamp > signed_packet.timestamp()
254+
self.timestamp > signed_packet.timestamp().into()
258255
}
259256

260257
fn resolve(&self, name: &Name, record_type: RecordType) -> Option<Arc<RecordSet>> {

0 commit comments

Comments
 (0)