void CLoginConn::Close() { if (m_handle != NETLIB_INVALID_HANDLE) { netlib_close(m_handle); if (m_conn_type == LOGIN_CONN_TYPE_CLIENT) { g_client_conn_map.erase(m_handle); } else { g_msg_serv_conn_map.erase(m_handle); // remove all user count from this message server map<uint32_t, msg_serv_info_t*>::iterator it = g_msg_serv_info.find(m_handle); if (it != g_msg_serv_info.end()) { msg_serv_info_t* pMsgServInfo = it->second; g_total_online_user_cnt -= pMsgServInfo->cur_conn_cnt; log("onclose from MsgServer: %s:%u ", pMsgServInfo->hostname.c_str(), pMsgServInfo->port); delete pMsgServInfo; g_msg_serv_info.erase(it); } } } ReleaseRef(); }
void CRouteConn::Close() { if (m_handle != NETLIB_INVALID_HANDLE) { netlib_close(m_handle); g_route_conn_map.erase(m_handle); } // remove all user info from this MessageServer UserInfoMap_t::iterator it_old; for (UserInfoMap_t::iterator it = g_user_map.begin(); it != g_user_map.end(); ) { it_old = it; it++; CUserInfo* pUser = it_old->second; pUser->RemoveRouteConn(this); if (pUser->GetRouteConnCount() == 0) { delete pUser; pUser = NULL; g_user_map.erase(it_old); } } ReleaseRef(); }
void CRouteConn::Close() { if (m_handle != NETLIB_INVALID_HANDLE) { netlib_close(m_handle); g_route_conn_map.erase(m_handle); } // remove all user info from this MessageServer UserStatMap_t::iterator it_old; for (UserStatMap_t::iterator it = g_rs_user_map.begin(); it != g_rs_user_map.end(); ) { it_old = it; it++; RouteConnMap_t::iterator conn_it = it_old->second.conns.find(this); if (conn_it != it_old->second.conns.end()) { it_old->second.conns.erase(conn_it); if (it_old->second.conns.empty()) { g_rs_user_map.erase(it_old); } } } ReleaseRef(); }
void ClientConn::Close() { log("clientconn close from handle = %d\n", m_handle); if (m_handle != NETLIB_INVALID_HANDLE) { netlib_close(m_handle); g_client_conn_map.erase(m_handle); } ReleaseRef(); }
void CDBServConn::Close() { // reset server information for the next connect serv_reset<CDBServConn>(g_db_server_list, g_db_server_count, m_serv_idx); if (m_handle != NETLIB_INVALID_HANDLE) { netlib_close(m_handle); g_db_server_conn_map.erase(m_handle); } ReleaseRef(); }
void CLoginServConn::Close() { serv_reset<CLoginServConn>(g_login_server_list, g_login_server_count, m_serv_idx); if (m_handle != NETLIB_INVALID_HANDLE) { netlib_close(m_handle); g_login_server_conn_map.erase(m_handle); } ReleaseRef(); }
void FileMsgServerConn::Close() { log("Close client, handle %d", m_handle); connected_ = false; if (m_handle != NETLIB_INVALID_HANDLE) { netlib_close(m_handle); g_file_msg_server_conn_map.erase(m_handle); } ReleaseRef(); }
void CRouteServConn::Close() { serv_reset<CRouteServConn>(g_route_server_list, g_route_server_count, m_serv_idx); m_bOpen = false; if (m_handle != NETLIB_INVALID_HANDLE) { netlib_close(m_handle); g_route_server_conn_map.erase(m_handle); } ReleaseRef(); if (g_master_rs_conn == this) { update_master_route_serv_conn(); } }
void CFileConn::Close() { log("close client, handle %d", m_handle); m_bAuth = false; if (m_handle != NETLIB_INVALID_HANDLE) { netlib_close(m_handle); g_file_conn_map.erase(m_handle); } if (m_user_id > 0) { g_file_user_map.erase(m_user_id); m_user_id = 0; } ReleaseRef(); }
void FileClientConn::Close() { log("close client, handle %d", m_handle); if (transfer_task_) { if (transfer_task_->GetTransMode() == FILE_TYPE_ONLINE) { transfer_task_->set_state(kTransferTaskStateInvalid); // CImConn* conn = transfer_task_->GetOpponentConn(user_id_); // if (conn) { // FileClientConn* conn2 = reinterpret_cast<FileClientConn*>(conn); // conn2->Close2(); // } // Close2(); } else { if (transfer_task_->state() >= kTransferTaskStateUploadEnd) { transfer_task_->set_state(kTransferTaskStateWaitingDownload); } } transfer_task_->SetConnByUserID(user_id_, NULL); TransferTaskManager::GetInstance()->DeleteTransferTaskByConnClose(transfer_task_->task_id()); // 关闭另一个连接 // if (transfer_task_->GetTransMode() == FILE_TYPE_ONLINE) { // } transfer_task_ = NULL; } auth_ = false; if (m_handle != NETLIB_INVALID_HANDLE) { netlib_close(m_handle); g_file_client_conn_map.erase(m_handle); } // if (user_id_ > 0) { // g_file_user_map.erase(m_user_id); // m_user_id = 0; // } ReleaseRef(); }