Aded ranking of resolvers by a weight value

This commit is contained in:
Slatian
2023-08-05 23:19:53 +02:00
parent 55897585ff
commit 5c7d880733
5 changed files with 16 additions and 7 deletions

View File

@ -245,7 +245,8 @@ async fn main() {
dns_resolver_selectables.push(Selectable {
id: "default".to_string(),
name: "System".to_string()
name: "System".to_string(),
weight: 1000,
});
//FIXME: Not release ready,must be configurable and have better error handling.
@ -256,7 +257,8 @@ async fn main() {
).unwrap();
dns_resolver_selectables.push(Selectable {
id: "quad9".to_string(),
name: "Quad9".to_string()
name: "Quad9".to_string(),
weight: 500
});
println!("Initalizing Google resolver ...");
let google_resolver = TokioAsyncResolver::tokio(
@ -265,7 +267,8 @@ async fn main() {
).unwrap();
dns_resolver_selectables.push(Selectable {
id: "google".to_string(),
name: "Google".to_string()
name: "Google".to_string(),
weight: 10,
});
println!("Initalizing Cloudflare resolver ...");
let cloudflare_resolver = TokioAsyncResolver::tokio(
@ -274,7 +277,8 @@ async fn main() {
).unwrap();
dns_resolver_selectables.push(Selectable {
id: "cloudflare".to_string(),
name: "Cloudflare".to_string()
name: "Cloudflare".to_string(),
weight: 20,
});
let mut dns_resolver_map: HashMap<String,TokioAsyncResolver> = HashMap::new();
@ -289,6 +293,7 @@ async fn main() {
dns_resolver_selectables.push(Selectable {
id: key.clone(),
name: resolver_config.display_name.clone(),
weight: resolver_config.weight,
});
}
@ -311,6 +316,7 @@ async fn main() {
config: config.clone(),
});
dns_resolver_selectables.sort_by(|a,b| b.weight.cmp(&a.weight));
let derived_config = DerivedConfiguration {
dns_resolver_selectables: dns_resolver_selectables,
};