From 5507adbe9473f4b41e52d16498f14850773e5e45 Mon Sep 17 00:00:00 2001 From: Florent Le Coz Date: Tue, 27 May 2014 01:01:44 +0200 Subject: SocketHandlers own the poller and add themself into it only when the socket is created MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We want to call socket() with the parameters provided by getaddrinfo, so we can’t addd the fd into the poller immediately. We need to wait the connection attempt, and then the SocketHandler can call add_socket_handler itself, if the connection succeeds, or is in progress. --- src/xmpp/xmpp_component.cpp | 3 ++- src/xmpp/xmpp_component.hpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'src/xmpp') diff --git a/src/xmpp/xmpp_component.cpp b/src/xmpp/xmpp_component.cpp index 32f5d96..55f0ca4 100644 --- a/src/xmpp/xmpp_component.cpp +++ b/src/xmpp/xmpp_component.cpp @@ -47,7 +47,8 @@ static std::set kickable_errors{ "malformed-error" }; -XmppComponent::XmppComponent(const std::string& hostname, const std::string& secret): +XmppComponent::XmppComponent(std::shared_ptr poller, const std::string& hostname, const std::string& secret): + SocketHandler(poller), ever_auth(false), last_auth(false), served_hostname(hostname), diff --git a/src/xmpp/xmpp_component.hpp b/src/xmpp/xmpp_component.hpp index fdf068b..f081420 100644 --- a/src/xmpp/xmpp_component.hpp +++ b/src/xmpp/xmpp_component.hpp @@ -18,7 +18,7 @@ class XmppComponent: public SocketHandler { public: - explicit XmppComponent(const std::string& hostname, const std::string& secret); + explicit XmppComponent(std::shared_ptr poller, const std::string& hostname, const std::string& secret); ~XmppComponent(); void on_connection_failed(const std::string& reason) override final; -- cgit v1.2.3