diff --git a/src/bridge/bridge.cpp b/src/bridge/bridge.cpp index e7f334f..728a8d7 100644 --- a/src/bridge/bridge.cpp +++ b/src/bridge/bridge.cpp @@ -63,7 +63,7 @@ void Bridge::shutdown(const std::string& exit_message) { for (auto& pair: this->irc_clients) { - std::unique_ptr& irc = pair.second; + std::shared_ptr& irc = pair.second; irc->send_quit_command(exit_message); } } @@ -134,11 +134,11 @@ IrcClient* Bridge::make_irc_client(const std::string& hostname, const std::strin realname = this->get_bare_jid(); } this->irc_clients.emplace(hostname, - std::make_unique(this->poller, hostname, + std::make_shared(this->poller, hostname, nickname, username, realname, jid.domain, *this)); - std::unique_ptr& irc = this->irc_clients.at(hostname); + std::shared_ptr irc = this->irc_clients.at(hostname); return irc.get(); } } @@ -1146,12 +1146,12 @@ void Bridge::trigger_on_irc_message(const std::string& irc_hostname, const IrcMe } } -std::unordered_map>& Bridge::get_irc_clients() +std::unordered_map>& Bridge::get_irc_clients() { return this->irc_clients; } -const std::unordered_map>& Bridge::get_irc_clients() const +const std::unordered_map>& Bridge::get_irc_clients() const { return this->irc_clients; } diff --git a/src/bridge/bridge.hpp b/src/bridge/bridge.hpp index a7aef3d..e9e5473 100644 --- a/src/bridge/bridge.hpp +++ b/src/bridge/bridge.hpp @@ -226,8 +226,8 @@ public: * iq_responder_callback_t and remove the callback from the list. */ void trigger_on_irc_message(const std::string& irc_hostname, const IrcMessage& message); - std::unordered_map>& get_irc_clients(); - const std::unordered_map>& get_irc_clients() const; + std::unordered_map>& get_irc_clients(); + const std::unordered_map>& get_irc_clients() const; std::set get_chantypes(const std::string& hostname) const; #ifdef USE_DATABASE void set_record_history(const bool val); @@ -260,7 +260,7 @@ private: * One IrcClient for each IRC server we need to be connected to. * The pointer is shared by the bridge and the poller. */ - std::unordered_map> irc_clients; + std::unordered_map> irc_clients; /** * To communicate back with the XMPP component */