mirror of
https://github.com/mailscope/kumomta.git
synced 2026-10-06 15:22:25 +00:00
kumo.dns: add lookup_txt
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
use anyhow::Context;
|
||||
use config::{any_err, get_or_create_sub_module, serialize_options};
|
||||
use dns_resolver::resolver::Resolver;
|
||||
use dns_resolver::{resolve_a_or_aaaa, MailExchanger};
|
||||
use dns_resolver::{get_resolver, resolve_a_or_aaaa, MailExchanger};
|
||||
use hickory_resolver::config::{NameServerConfig, Protocol, ResolverConfig, ResolverOpts};
|
||||
use hickory_resolver::{Name, TokioAsyncResolver};
|
||||
use mlua::{Lua, LuaSerdeExt};
|
||||
@@ -18,6 +18,15 @@ pub fn register(lua: &Lua) -> anyhow::Result<()> {
|
||||
})?,
|
||||
)?;
|
||||
|
||||
dns_mod.set(
|
||||
"lookup_txt",
|
||||
lua.create_async_function(|_lua, domain: String| async move {
|
||||
let resolver = get_resolver();
|
||||
let answer = resolver.resolve_txt(domain).await.map_err(any_err)?;
|
||||
Ok(answer.as_txt())
|
||||
})?,
|
||||
)?;
|
||||
|
||||
dns_mod.set(
|
||||
"lookup_addr",
|
||||
lua.create_async_function(|_lua, domain: String| async move {
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
# `kumo.dns.lookup_txt(DOMAIN)`
|
||||
|
||||
{{since('dev')}}
|
||||
|
||||
Resolve a TXT record for the requested `DOMAIN`.
|
||||
|
||||
Raises an error if the domain doesn't exist.
|
||||
|
||||
Returns a lua array-style table with the list of txt records returned from DNS.
|
||||
|
||||
```lua
|
||||
assert(
|
||||
kumo.serde.json_encode(kumo.dns.lookup_txt 'gmail.com')
|
||||
== '["v=spf1 redirect=_spf.google.com","globalsign-smime-dv=CDYX+XFHUw2wml6/Gb8+59BsH31KzUr6c1l2BPvqKX8="]'
|
||||
)
|
||||
```
|
||||
Reference in New Issue
Block a user