| 741 | } |
| 742 | |
| 743 | bool CECSocket::FlushBuffers() |
| 744 | { |
| 745 | if (m_tx_flags & EC_FLAG_ZLIB) { |
| 746 | do { |
| 747 | m_z.next_out = &m_out_ptr[0]; |
| 748 | m_z.avail_out = EC_SOCKET_BUFFER_SIZE; |
| 749 | int zerror = deflate(&m_z, Z_FINISH); |
| 750 | if ( zerror == Z_STREAM_ERROR ) { |
| 751 | AddDebugLogLineN(logEC, "FlushBuffers: ZLib error"); |
| 752 | ShowZError(zerror, &m_z); |
| 753 | return false; |
| 754 | } |
| 755 | WriteBufferToSocket(&m_out_ptr[0], |
| 756 | EC_SOCKET_BUFFER_SIZE - m_z.avail_out); |
| 757 | } while ( m_z.avail_out == 0 ); |
| 758 | } |
| 759 | if ( m_curr_tx_data->GetDataLength() ) { |
| 760 | m_output_queue.push_back(m_curr_tx_data.release()); |
| 761 | m_curr_tx_data.reset(new CQueuedData(EC_SOCKET_BUFFER_SIZE)); |
| 762 | } |
| 763 | return true; |
| 764 | } |
| 765 | |
| 766 | // |
| 767 | // Packet I/O |
no test coverage detected