|
join 1.0
lightweight network framework library
|
basic DNS name server over datagram socket. More...
#include <nameserver.hpp>


Public Types | |
| using | Socket = typename Protocol::Socket |
| using | Endpoint = typename Protocol::Endpoint |
Public Member Functions | |
| BasicDatagramNameServer (Reactor &reactor=ReactorThread::reactor()) | |
| construct the name server instance. | |
| BasicDatagramNameServer (const BasicDatagramNameServer &other)=delete | |
| copy constructor. | |
| BasicDatagramNameServer & | operator= (const BasicDatagramNameServer &other)=delete |
| copy assignment operator. | |
| BasicDatagramNameServer (BasicDatagramNameServer &&other)=delete | |
| move constructor. | |
| BasicDatagramNameServer & | operator= (BasicDatagramNameServer &&other)=delete |
| move assignment operator. | |
| virtual | ~BasicDatagramNameServer () noexcept=default |
| destroy instance. | |
| virtual int | bind (const Endpoint &endpoint) noexcept override |
| bind the socket to the given endpoint and register with the reactor. | |
| virtual void | close () noexcept override |
| close the socket and unregister from the reactor. | |
| int | reply (const DnsPacket &query, const std::vector< ResourceRecord > &answers={}, const std::vector< ResourceRecord > &authorities={}, const std::vector< ResourceRecord > &additionals={}, uint16_t rcode=0) |
| reply to a DNS query. | |
| virtual void | onQuery (const DnsPacket &packet)=0 |
| method called when a DNS query is received. | |
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. | |
Protected Member Functions | |
| virtual void | onReadable (int fd) override |
| method called when data are ready to be read on handle. | |
| int | send (DnsPacket &packet) |
| serialize and send a DNS packet. | |
Protected Member Functions inherited from join::EventHandler | |
| virtual void | onWriteable (int fd) |
| method called when data are ready to be written on handle. | |
| virtual void | onClose (int fd) |
| method called when handle was closed by the peer. | |
| virtual void | onError (int fd) |
| method called when an error occurred on handle. | |
Protected Attributes | |
| DnsMessage | _message |
| DNS message codec. | |
| Reactor & | _reactor |
| event loop reactor. | |
| std::unique_ptr< char[]> | _buffer |
| reception buffer. | |
Static Protected Attributes | |
| static constexpr size_t | _headerSize = 12 |
| DNS message header size. | |
basic DNS name server over datagram socket.
| using join::BasicDatagramNameServer< Protocol >::Endpoint = typename Protocol::Endpoint |
| using join::BasicDatagramNameServer< Protocol >::Socket = typename Protocol::Socket |
|
inlineexplicit |
construct the name server instance.
| reactor | event loop reactor. |
|
delete |
copy constructor.
| other | other object to copy. |
|
delete |
move constructor.
| other | other object to move. |
|
virtualdefaultnoexcept |
destroy instance.
|
inlineoverridevirtualnoexcept |
bind the socket to the given endpoint and register with the reactor.
| endpoint | endpoint to bind to. |
|
inlineoverridevirtualnoexcept |
close the socket and unregister from the reactor.
|
pure virtual |
method called when a DNS query is received.
| packet | parsed DNS query received. |
|
inlineoverrideprotectedvirtual |
method called when data are ready to be read on handle.
| fd | file descriptor. |
Reimplemented from join::EventHandler.
Reimplemented in join::BasicDatagramPeer< Protocol >.
|
delete |
move assignment operator.
| other | other object to move. |
|
delete |
copy assignment operator.
| other | other object to copy. |
|
inline |
reply to a DNS query.
| query | original query packet. |
| answers | answer records. |
| authorities | authority records. |
| additionals | additional records. |
| rcode | response code (default: 0 = no error). |
|
inlineprotected |
serialize and send a DNS packet.
| packet | DNS packet to send. |
|
protected |
reception buffer.
|
staticconstexprprotected |
DNS message header size.
|
protected |
DNS message codec.
|
protected |
event loop reactor.