void ChannelServerApp::disconnect( const Mercury::Address & srcAddr, const ServerInterface::disconnectArgs & args ) { Peers::iterator peerIter = peers_.find( srcAddr ); if (peerIter != peers_.end()) { peerIter->second->disconnect( args.seq ); peers_.erase( peerIter ); if (peers_.empty()) { this->nub().breakProcessing(); } } else { ERROR_MSG( "ChannelServerApp::disconnectArgs: " "Got message from unknown peer at %s\n", srcAddr.c_str() ); } }