diff options
author | Jonas Smedegaard <dr@jones.dk> | 2017-06-24 09:21:31 +0200 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2017-06-24 09:21:31 +0200 |
commit | c21cbbf9667991d2b928562a9c199e625d3f9bba (patch) | |
tree | ffd5e6895a578102ed9055fbb02a88031154ae0b /src/network/dns_socket_handler.hpp | |
parent | de62b6456bebd130f98ce6192cd63ff42e654fac (diff) | |
parent | 23a3372144215c9ba7a30d599164677284813fa4 (diff) | |
download | biboumi-c21cbbf9667991d2b928562a9c199e625d3f9bba.tar.gz biboumi-c21cbbf9667991d2b928562a9c199e625d3f9bba.tar.bz2 biboumi-c21cbbf9667991d2b928562a9c199e625d3f9bba.tar.xz biboumi-c21cbbf9667991d2b928562a9c199e625d3f9bba.zip |
New upstream version 5.0
Diffstat (limited to 'src/network/dns_socket_handler.hpp')
-rw-r--r-- | src/network/dns_socket_handler.hpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/network/dns_socket_handler.hpp b/src/network/dns_socket_handler.hpp new file mode 100644 index 0000000..6e83e87 --- /dev/null +++ b/src/network/dns_socket_handler.hpp @@ -0,0 +1,33 @@ +#pragma once + +#include <biboumi.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 |