int JackNetMasterInterface::Send(size_t size, int flags) { int tx_bytes; packet_header_t* header = reinterpret_cast<packet_header_t*>(fTxBuffer); PacketHeaderHToN(header, header); if (((tx_bytes = fSocket.Send(fTxBuffer, size, flags)) == SOCKET_ERROR) && fRunning) { FatalSendError(); } return tx_bytes; }
int JackNetSlaveInterface::Send(size_t size, int flags) { packet_header_t* header = reinterpret_cast<packet_header_t*>(fTxBuffer); PacketHeaderHToN(header, header); int tx_bytes = fSocket.Send(fTxBuffer, size, flags); // handle errors if (tx_bytes == SOCKET_ERROR) { FatalSendError(); } return tx_bytes; }
int JackNetSlaveInterface::Send ( size_t size, int flags ) { packet_header_t* header = reinterpret_cast<packet_header_t*>(fTxBuffer); PacketHeaderHToN(header, header); int tx_bytes = fSocket.Send ( fTxBuffer, size, flags ); //handle errors if ( tx_bytes == SOCKET_ERROR ) { net_error_t error = fSocket.GetError(); //if a network error occurs, this exception will restart the driver if ( error == NET_CONN_ERROR ) { jack_error ( "Connection lost." ); throw JackNetException(); } else jack_error ( "Fatal error in slave send : %s", StrError ( NET_ERROR_CODE ) ); } return tx_bytes; }
int JackNetMasterInterface::Send ( size_t size, int flags ) { int tx_bytes; packet_header_t* header = reinterpret_cast<packet_header_t*>(fTxBuffer); PacketHeaderHToN(header, header); if ( ( ( tx_bytes = fSocket.Send ( fTxBuffer, size, flags ) ) == SOCKET_ERROR ) && fRunning ) { net_error_t error = fSocket.GetError(); if ( error == NET_CONN_ERROR ) { //fatal connection issue, exit jack_error ( "'%s' : %s, exiting.", fParams.fName, StrError ( NET_ERROR_CODE ) ); Exit(); // UGLY temporary way to be sure the thread does not call code possibly causing a deadlock in JackEngine. ThreadExit(); } else jack_error ( "Error in master send : %s", StrError ( NET_ERROR_CODE ) ); } return tx_bytes; }