diff options
author | louiz’ <louiz@louiz.org> | 2017-06-28 14:41:33 +0200 |
---|---|---|
committer | louiz’ <louiz@louiz.org> | 2017-06-28 14:41:33 +0200 |
commit | 13a1ab1878fd6312aea485ded3f5bad59c36f17f (patch) | |
tree | 071b90523126d677f714cbf13346507f2e500d69 /src/network/dns_socket_handler.hpp | |
parent | a1349361d2c15929e8260536c9091f2a4c2048a4 (diff) | |
parent | 7e69d0387e85eeed10d605349feeba595c3fa0ee (diff) | |
download | biboumi-13a1ab1878fd6312aea485ded3f5bad59c36f17f.tar.gz biboumi-13a1ab1878fd6312aea485ded3f5bad59c36f17f.tar.bz2 biboumi-13a1ab1878fd6312aea485ded3f5bad59c36f17f.tar.xz biboumi-13a1ab1878fd6312aea485ded3f5bad59c36f17f.zip |
Merge remote-tracking branch 'remotes/debian/master' into debian
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 |