mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2026-11-13 12:16:54 +00:00
fix: Use correct DNS caching for SNI to function properly
This removes the old (broken) DNS caching method for reqwest, and replaces it with resolvematrix' `MatrixDnsResolver`, as it correctly implements caching and overrides for correct SNI behavior.
This commit is contained in:
1 parent
2e1015846d
commit
8b6a176901
7 files changed
+94
-140
No files matched your search
@@ -1017,7 +1017,7 @@ impl crate::Context<'_> {
|
||||
.http_client(self.services.client.default.clone())
|
||||
.build()?
|
||||
} else {
|
||||
&self.services.client.resolver
|
||||
&self.services.client.matrix_resolver
|
||||
};
|
||||
|
||||
let actual = resolver.resolve_server(server_name.as_str()).await?;
|
||||
|
||||
@@ -47,7 +47,7 @@ impl crate::Context<'_> {
|
||||
writeln!(self, "| Server Name | Destination | SNI | Override | Step | Expires |").await?;
|
||||
writeln!(self, "| ----------- | ----------- | --- | -------- | ---- | ------- |").await?;
|
||||
|
||||
let entries = self.services.client.resolver.get_all_cache_entries();
|
||||
let entries = self.services.client.matrix_resolver.get_all_cache_entries();
|
||||
|
||||
for (host, entry) in entries {
|
||||
if let Some(ors) = overrides
|
||||
@@ -81,13 +81,13 @@ impl crate::Context<'_> {
|
||||
|
||||
async fn flush_cache(&self, name: Option<OwnedServerName>, all: bool) -> Result {
|
||||
if all {
|
||||
self.services.client.resolver.clear_cache();
|
||||
self.services.client.dns.clear_cache();
|
||||
self.services.client.matrix_resolver.clear_cache();
|
||||
self.services.client.dns_resolver.clear_cache();
|
||||
writeln!(self, "Resolver and DNS caches cleared!").await
|
||||
} else if let Some(name) = name {
|
||||
self.services
|
||||
.client
|
||||
.resolver
|
||||
.matrix_resolver
|
||||
.remove_cache_entry(name.as_str());
|
||||
self.write_str(&format!("Cleared {name} from resolver caches!"))
|
||||
.await
|
||||
|
||||
Reference in new issue
Block a user