/*-----TCPSocket::TransferConnectionFrom--------------------------------------- * Transfers a connection from the given socket to the current one and closes * and resets the given socket *---------------------------------------------------------------------------*/ void TCPSocket::TransferConnectionFrom(TCPSocket &from) { myDescriptor = from.myDescriptor; myLocalAddr = from.myLocalAddr; myRemoteAddr = from.myRemoteAddr; myUserId = from.myUserId; if (from.m_p_SSL) { pthread_mutex_lock(&from.mutex_ssl); pthread_mutex_init(&mutex_ssl, NULL); pthread_mutex_lock(&mutex_ssl); m_p_SSL = from.m_p_SSL; from.SecureStop(); pthread_mutex_unlock(&mutex_ssl); } else m_p_SSL = NULL; from.myDescriptor = -1; from.CloseConnection(); }