Comments (2)
The docs should be a little clearer, and maybe we should disable this sync interface by default. You want to instead use the AsyncResolver
: https://docs.rs/hickory-resolver/latest/hickory_resolver/struct.AsyncResolver.html#method.tokio
from hickory-dns.
that was the ticket! Thanks so much. Do you have a "buy me a coffee" link?
FYI for anyone coming across this. Correct code is here:
#[tokio::main]
async fn main() -> Result<(),()> {
let max_async_threads = 10;
let mut fqdns = Vec::<String>::new();
while fqdns.len() < 100 {
fqdns.push("google.com.".to_string());
}
let mut join_set = JoinSet::<(String)>::new();
for fqdn in fqdns {
while join_set.len() >= max_async_threads {
let result = join_set.join_next().await.expect("Async to return").expect("DNS to resolve");
println!("{}", result);
}
join_set.spawn(some_async(fqdn));
}
while let Some(result) = join_set.join_next().await {
let address = result.expect("DNS to return");
println!("{}", address);
}
Ok(())
}
async fn some_async(fqdn: String) -> String {
let resolver = AsyncResolver::tokio(ResolverConfig::default(), ResolverOpts::default());
let response: Ipv4Lookup = resolver.ipv4_lookup(fqdn).await.unwrap();
let address = response.iter().next().expect("no addresses returned!");
address.to_string()
}
from hickory-dns.
Related Issues (20)
- Missing point of contact for security issues HOT 3
- `IN` keyword is not accepted HOT 2
- Request for a wildcard with ANY returns nothing HOT 2
- Handle sockets that have been shut down HOT 5
- Make ```hickory_proto::quic::QuicClientStream``` clonable
- why hickory-proto 0.24.1 ring dependencies is still 0.16.20 HOT 4
- Not convenient to call bind_with_addr to make a AsyncResolver HOT 4
- Bind address in ResolverConfig does not take effort for AsyncResolver HOT 10
- `hickory-dns` responds to `dig A doesnotexist.fqdn.com.` with NOERROR instead of with NXDOMAIN HOT 6
- `hickory-dns` resolver does not honor the DO bit in client's queries HOT 2
- [RFC] DNSSEC validation: configuration syntax HOT 10
- [RFC] re-structure `named.toml` syntax to reject invalid configurations HOT 3
- TCP fallback is not always used and forcing it is not ergonomic HOT 3
- 0.25 Release HOT 10
- Static build support (openssl + cross-compile) HOT 6
- `DnssecDnsHandle` does not appear to validate RRSIG's signature {inception,expiration} fields HOT 1
- malformed query can cause assertion failure at encoder.rs:234 HOT 1
- should `proto::rr::resource::Record.rdata` really be an `Option`? HOT 6
- `just clippy` does not catch warnings produced by `just dnssec-openssl` HOT 5
- DNS Resolver rotate feature HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hickory-dns.