bool Transporter::connect_server(NDB_SOCKET_TYPE sockfd) { // all initial negotiation is done in TransporterRegistry::connect_server DBUG_ENTER("Transporter::connect_server"); if(m_connected) { DBUG_RETURN(false); // TODO assert(0); } { struct sockaddr_in addr; SOCKET_SIZE_TYPE addrlen= sizeof(addr); getpeername(sockfd, (struct sockaddr*)&addr, &addrlen); m_connect_address= (&addr)->sin_addr; } bool res = connect_server_impl(sockfd); if(res){ m_connected = true; m_errorCount = 0; } DBUG_RETURN(res); }
bool Transporter::connect_server(NDB_SOCKET_TYPE sockfd, BaseString& msg) { // all initial negotiation is done in TransporterRegistry::connect_server DBUG_ENTER("Transporter::connect_server"); if (m_connected) { msg.assfmt("line: %u : already connected ??", __LINE__); DBUG_RETURN(false); } // Cache the connect address my_socket_connect_address(sockfd, &m_connect_address); if (!connect_server_impl(sockfd)) { msg.assfmt("line: %u : connect_server_impl failed", __LINE__); DBUG_RETURN(false); } m_connected = true; DBUG_RETURN(true); }