bool TCPListener::Send(Message *m) { auto it = _conHndlrs.find(m->Conn()); if (it != _conHndlrs.end()) { Connection *c = it->first; ConnectionHandler *h = it->second; if (c->IsOpen()) { h->Send(m); } else { _conHndlrs.erase(it); delete h; if (m->Owner() == 0) delete m; } return true; } else if (m->Cmd() == "") // skip dummy messages { if (m->Owner() == 0) delete m; return true; } return false; }