|
join 1.0
lightweight network framework library
|
basic DNS resolver over TLS socket (DNS over TLS). More...
#include <resolver.hpp>


Public Types | |
| using | Socket = typename Protocol::Socket |
| using | UnderlyingSocket = typename Socket::UnderlyingSocket |
| using | Endpoint = typename Protocol::Endpoint |
Public Types inherited from join::BasicDatagramResolver< Protocol > | |
| using | Socket = typename Protocol::Socket |
| using | Endpoint = typename Protocol::Endpoint |
| using | DnsNotify = std::function<void (const DnsPacket&)> |
| notification callback definition. | |
Public Member Functions | |
| BasicTlsResolver (TlsContext ctx, const std::string &server={}, uint16_t port=Protocol::defaultPort, Reactor &reactor=ReactorThread::reactor()) | |
| construct the DoT resolver instance. | |
| BasicTlsResolver (const BasicTlsResolver &other)=delete | |
| copy constructor. | |
| BasicTlsResolver & | operator= (const BasicTlsResolver &other)=delete |
| copy assignment operator. | |
| BasicTlsResolver (BasicTlsResolver &&other)=delete | |
| move constructor. | |
| BasicTlsResolver & | operator= (BasicTlsResolver &&other)=delete |
| move assignment operator. | |
| virtual | ~BasicTlsResolver () noexcept |
| destroy instance. | |
Public Member Functions inherited from join::BasicDatagramResolver< Protocol > | |
| BasicDatagramResolver (const std::string &server={}, uint16_t port=Protocol::defaultPort, Reactor &reactor=ReactorThread::reactor()) | |
| BasicDatagramResolver (Socket &&socket, const std::string &server={}, uint16_t port=Protocol::defaultPort, Reactor &reactor=ReactorThread::reactor()) | |
| construct the resolver instance. | |
| BasicDatagramResolver (const BasicDatagramResolver &other)=delete | |
| copy constructor. | |
| BasicDatagramResolver & | operator= (const BasicDatagramResolver &other)=delete |
| copy assignment operator. | |
| BasicDatagramResolver (BasicDatagramResolver &&other)=delete | |
| move constructor. | |
| BasicDatagramResolver & | operator= (BasicDatagramResolver &&other)=delete |
| move assignment operator. | |
| virtual | ~BasicDatagramResolver () noexcept |
| destroy instance. | |
| IpAddressList | resolveAllAddress (const std::string &host, int family, std::chrono::milliseconds timeout=std::chrono::seconds(5)) |
| resolve host name and return all IP addresses found. | |
| IpAddressList | resolveAllAddress (const std::string &host, std::chrono::milliseconds timeout=std::chrono::seconds(5)) |
| resolve host name and return all IP addresses found. | |
| IpAddress | resolveAddress (const std::string &host, int family, std::chrono::milliseconds timeout=std::chrono::seconds(5)) |
| resolve host name using address family. | |
| IpAddress | resolveAddress (const std::string &host, std::chrono::milliseconds timeout=std::chrono::seconds(5)) |
| resolve host name. | |
| AliasList | resolveAllName (const IpAddress &address, std::chrono::milliseconds timeout=std::chrono::seconds(5)) |
| resolve all host address. | |
| std::string | resolveName (const IpAddress &address, std::chrono::milliseconds timeout=std::chrono::seconds(5)) |
| resolve host address. | |
| ServerList | resolveAllNameServer (const std::string &host, std::chrono::milliseconds timeout=std::chrono::seconds(5)) |
| resolve all host name server. | |
| std::string | resolveNameServer (const std::string &host, std::chrono::milliseconds timeout=std::chrono::seconds(5)) |
| resolve host name server. | |
| std::string | resolveAuthority (const std::string &host, std::chrono::milliseconds timeout=std::chrono::seconds(5)) |
| resolve host start of authority name server. | |
| ExchangerList | resolveAllMailExchanger (const std::string &host, std::chrono::milliseconds timeout=std::chrono::seconds(5)) |
| resolve all host mail exchanger. | |
| std::string | resolveMailExchanger (const std::string &host, std::chrono::milliseconds timeout=std::chrono::seconds(5)) |
| resolve host mail exchanger. | |
Public Member Functions inherited from join::EventHandler | |
| EventHandler ()=default | |
| create instance. | |
| EventHandler (const EventHandler &other)=default | |
| copy constructor. | |
| EventHandler & | operator= (const EventHandler &other)=default |
| copy assignment operator. | |
| EventHandler (EventHandler &&other)=default | |
| move constructor. | |
| EventHandler & | operator= (EventHandler &&other)=default |
| move assignment operator. | |
| virtual | ~EventHandler ()=default |
| destroy instance. | |
Static Public Member Functions | |
| static IpAddressList | lookupAllAddress (const std::string &host, int family)=delete |
| resolve host name using system name servers and return all IP addresses found. | |
| static IpAddressList | lookupAllAddress (const std::string &host)=delete |
| resolve host name using system name servers and return all IP addresses found. | |
| static IpAddress | lookupAddress (const std::string &host, int family)=delete |
| resolve host name using system name servers. | |
| static IpAddress | lookupAddress (const std::string &host)=delete |
| resolve host name using system name servers. | |
| static AliasList | lookupAllName (const IpAddress &address)=delete |
| resolve all host address. | |
| static std::string | lookupName (const IpAddress &address)=delete |
| resolve host address. | |
| static ServerList | lookupAllNameServer (const std::string &host)=delete |
| resolve all host name server. | |
| static std::string | lookupNameServer (const std::string &host)=delete |
| resolve host name server. | |
| static std::string | lookupAuthority (const std::string &host)=delete |
| resolve host start of authority name server. | |
| static ExchangerList | lookupAllMailExchanger (const std::string &host)=delete |
| resolve all host mail exchanger. | |
| static std::string | lookupMailExchanger (const std::string &host)=delete |
| resolve host mail exchanger. | |
Static Public Member Functions inherited from join::BasicDatagramResolver< Protocol > | |
| static IpAddressList | lookupAllAddress (const std::string &host, int family) |
| resolve host name using system name servers and return all IP addresses found. | |
| static IpAddressList | lookupAllAddress (const std::string &host) |
| resolve host name using system name servers and return all IP addresses found. | |
| static IpAddress | lookupAddress (const std::string &host, int family) |
| resolve host name using system name servers. | |
| static IpAddress | lookupAddress (const std::string &host) |
| resolve host name using system name servers. | |
| static AliasList | lookupAllName (const IpAddress &address) |
| resolve all host address. | |
| static std::string | lookupName (const IpAddress &address) |
| resolve host address. | |
| static ServerList | lookupAllNameServer (const std::string &host) |
| resolve all host name server. | |
| static std::string | lookupNameServer (const std::string &host) |
| resolve host name server. | |
| static std::string | lookupAuthority (const std::string &host) |
| resolve host start of authority name server. | |
| static ExchangerList | lookupAllMailExchanger (const std::string &host) |
| resolve all host mail exchanger. | |
| static std::string | lookupMailExchanger (const std::string &host) |
| resolve host mail exchanger. | |
| static IpAddressList | nameServers () noexcept |
| get IP address of the currently configured name servers. | |
| static uint16_t | resolveService (const std::string &service) noexcept |
| resolve service name. | |
Additional Inherited Members | |
Public Attributes inherited from join::BasicDatagramResolver< Protocol > | |
| DnsNotify | onSuccess |
| callback called when a lookup sequence succeed. | |
| DnsNotify | onFailure |
| callback called when a lookup sequence failed. | |
Protected Member Functions inherited from join::BasicDatagramResolver< Protocol > | |
| int | reconnect (const Endpoint &endpoint, std::chrono::milliseconds timeout=std::chrono::seconds(5)) |
| reconnect to the remote DNS server. | |
| int | query (DnsPacket &packet, std::chrono::milliseconds timeout) |
| serialize and send a DNS query, waiting for a response. | |
| void | onReadable (int fd) override final |
| method called when data are ready to be read on handle. | |
| void | onClose (int fd) override final |
| method called when handle is closed. | |
| void | notify (const DnsNotify &func, const DnsPacket &packet) const noexcept |
| safe way to notify DNS events. | |
Protected Member Functions inherited from join::EventHandler | |
| virtual void | onEvent (int fd, uint32_t revents) |
| method called when events are reported on handle. | |
| virtual void | onWriteable (int fd) |
| method called when data are ready to be written on handle. | |
| virtual void | onError (int fd) |
| method called when an error occurred on handle. | |
Protected Attributes inherited from join::BasicDatagramResolver< Protocol > | |
| DnsMessage | _message |
| DNS message codec. | |
| Socket | _socket |
| underlying socket. | |
| std::string | _server |
| remote DNS server. | |
| uint16_t | _port |
| remote DNS server port. | |
| Reactor & | _reactor |
| event loop reactor. | |
| std::unique_ptr< char[]> | _buffer |
| reception buffer. | |
| std::unordered_map< uint16_t, std::unique_ptr< PendingRequest > > | _pending |
| synchronous requests indexed by sequence number. | |
| Mutex | _syncMutex |
| protection mutex. | |
Static Protected Attributes inherited from join::BasicDatagramResolver< Protocol > | |
| static constexpr size_t | _headerSize = 12 |
| DNS message header size. | |
basic DNS resolver over TLS socket (DNS over TLS).
| using join::BasicTlsResolver< Protocol >::Endpoint = typename Protocol::Endpoint |
| using join::BasicTlsResolver< Protocol >::Socket = typename Protocol::Socket |
| using join::BasicTlsResolver< Protocol >::UnderlyingSocket = typename Socket::UnderlyingSocket |
|
inlineexplicit |
construct the DoT resolver instance.
| server | remote DNS server address. |
| port | remote DNS server port. |
| reactor | reactor instance. |
|
delete |
copy constructor.
| other | other object to copy. |
|
delete |
move constructor.
| other | other object to move. |
|
inlinevirtualnoexcept |
destroy instance.
|
staticdelete |
resolve host name using system name servers.
| host | host name to resolve. |
|
staticdelete |
resolve host name using system name servers.
| host | host name to resolve. |
| family | address family. |
|
staticdelete |
resolve host name using system name servers and return all IP addresses found.
| host | host name to resolve. |
|
staticdelete |
resolve host name using system name servers and return all IP addresses found.
| host | host name to resolve. |
| family | address family. |
|
staticdelete |
resolve all host mail exchanger.
| host | host name to resolve. |
|
staticdelete |
resolve all host address.
| address | host address to resolve. |
|
staticdelete |
resolve all host name server.
| host | host name to resolve. |
|
staticdelete |
resolve host start of authority name server.
| host | host name to resolve. |
|
staticdelete |
resolve host mail exchanger.
| host | host name to resolve. |
|
staticdelete |
resolve host address.
| address | host address to resolve. |
|
staticdelete |
resolve host name server.
| host | host name to resolve. |
|
delete |
move assignment operator.
| other | other object to move. |
|
delete |
copy assignment operator.
| other | other object to copy. |