Connection to servers does not block the process anymore

This commit is contained in:
Florent Le Coz
2014-02-22 21:42:24 +01:00
parent 61ca40fa0e
commit 99aba5667d
10 changed files with 111 additions and 32 deletions
+2 -2
View File
@@ -52,7 +52,7 @@ void Bridge::clean()
while (it != this->irc_clients.end())
{
IrcClient* client = it->second.get();
if (!client->is_connected())
if (!client->is_connected() && !client->is_connecting())
it = this->irc_clients.erase(it);
else
++it;
@@ -249,7 +249,7 @@ std::string Bridge::get_own_nick(const Iid& iid)
return "";
}
size_t Bridge::connected_clients() const
size_t Bridge::active_clients() const
{
return this->irc_clients.size();
}
+3 -3
View File
@@ -105,9 +105,9 @@ public:
*/
std::string get_own_nick(const Iid& iid);
/**
* Get the number of server to which this bridge is connected.
* Get the number of server to which this bridge is connected or connecting.
*/
size_t connected_clients() const;
size_t active_clients() const;
private:
/**
@@ -125,7 +125,7 @@ private:
* The JID of the user associated with this bridge. Messages from/to this
* JID are only managed by this bridge.
*/
std::string user_jid;
const std::string user_jid;
/**
* One IrcClient for each IRC server we need to be connected to.
* The pointer is shared by the bridge and the poller.