From bc282425088455198a7a99511c75914477d4ed32 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 13 Apr 2024 23:14:51 +0200 Subject: Merging upstream version 1.9.3. Signed-off-by: Daniel Baumann --- dnsdist-lua-network.hh | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'dnsdist-lua-network.hh') diff --git a/dnsdist-lua-network.hh b/dnsdist-lua-network.hh index a63efd4..3cd2f08 100644 --- a/dnsdist-lua-network.hh +++ b/dnsdist-lua-network.hh @@ -34,16 +34,32 @@ class NetworkListener { public: NetworkListener(); + NetworkListener(const NetworkListener&) = delete; + NetworkListener(NetworkListener&&) = delete; + NetworkListener& operator=(const NetworkListener&) = delete; + NetworkListener& operator=(NetworkListener&&) = delete; + ~NetworkListener(); using EndpointID = uint16_t; using NetworkDatagramCB = std::function; - bool addUnixListeningEndpoint(const std::string& path, EndpointID id, NetworkDatagramCB cb); + bool addUnixListeningEndpoint(const std::string& path, EndpointID endpointID, NetworkDatagramCB callback); void start(); - void runOnce(struct timeval& now, uint32_t timeout); + void runOnce(timeval& now, uint32_t timeout); private: + struct ListenerData + { + ListenerData(); + + std::unique_ptr d_mplexer; + std::unordered_map d_sockets; + std::atomic d_running{false}; + std::atomic d_exiting{false}; + }; + static void readCB(int desc, FDMultiplexer::funcparam_t& param); - void mainThread(); + static void mainThread(std::shared_ptr& data); + static void runOnce(ListenerData& data, timeval& now, uint32_t timeout); struct CBData { @@ -51,9 +67,7 @@ private: EndpointID d_endpoint; }; - std::unique_ptr d_mplexer; - std::unordered_map d_sockets; - std::atomic d_running{false}; + std::shared_ptr d_data; }; class NetworkEndpoint -- cgit v1.2.3