1#ifndef IPFS_CHROMIUM_ARES_DNS_TXT_LOOKUP_H
2#define IPFS_CHROMIUM_ARES_DNS_TXT_LOOKUP_H
4#include "dns_txt_lookup.h"
9#if __has_include(<ares.h>)
13namespace boost::asio {
17class AresDnsTxtLookup :
public DnsTxtLookup {
19 DnsTextResultsCallback r;
20 DnsTextCompleteCallback c;
22 std::map<std::string, std::vector<DnsCbs>> pending_dns_;
23 boost::asio::io_context* io_;
24 ares_channel_t* ares_channel_ =
nullptr;
28 AresDnsTxtLookup(boost::asio::io_context* io =
nullptr);
29 ~AresDnsTxtLookup() noexcept override;
30 void SendDnsTextRequest(std::
string,
31 DnsTextResultsCallback,
32 DnsTextCompleteCallback) override;
33 void DnsResults(std::
string&, ares_txt_reply const*);