blob: e12f145c4eeb0d3fed1fa2c850ee382d4b020c01 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#pragma once
#include <louloulibs.h>
#ifdef UDNS_FOUND
#include <network/socket_handler.hpp>
/**
* Manage the UDP socket provided by udns, we do not create, open or close the
* socket ourself: this is done by udns. We only watch it for readability
*/
class DNSSocketHandler: public SocketHandler
{
public:
explicit DNSSocketHandler(std::shared_ptr<Poller> poller, const socket_t socket);
~DNSSocketHandler();
DNSSocketHandler(const DNSSocketHandler&) = delete;
DNSSocketHandler(DNSSocketHandler&&) = delete;
DNSSocketHandler& operator=(const DNSSocketHandler&) = delete;
DNSSocketHandler& operator=(DNSSocketHandler&&) = delete;
void on_recv() override final;
/**
* Always true, see the comment for connect()
*/
bool is_connected() const override final;
void watch();
void unwatch();
};
#endif // UDNS_FOUND
|