Skip to main content

tuwunel_admin/query/resolver/
overrides_cache.rs

1use 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}