tuwunel_admin/query/resolver/
overrides_cache.rs1use futures::StreamExt;
2use tuwunel_core::{Result, utils::time};
3use tuwunel_service::resolver::cache::CachedOverride;
4
5use crate::admin_command;
6
7#[admin_command]
8pub(super) async fn overrides_cache(&self, server_name: Option<String>) -> Result {
9 writeln!(self, "| Server Name | IP | Port | Expires | Overriding |").await?;
10 writeln!(self, "| ----------- | --- | ----:| ------- | ---------- |").await?;
11
12 let mut overrides = self.services.resolver.cache.overrides().boxed();
13
14 while let Some((name, CachedOverride { ips, port, expire, overriding })) =
15 overrides.next().await
16 {
17 if let Some(server_name) = server_name.as_ref()
18 && name != server_name
19 {
20 continue;
21 }
22
23 let expire = time::format(expire, "%+");
24 write!(self, "| {name} | {ips:?} | {port} | {expire} | {overriding:?} |\n").await?;
25 }
26
27 Ok(())
28}