bool ReceiveOneBuffer() { size_t received = 0; while (received < size_) { boost::system::error_code ec; size_t remaining_size = size_ - received; socket_.send(boost::asio::buffer(&remaining_size, sizeof(remaining_size)), 0, ec); if (ec) { return false; } auto n = socket_.receive(boost::asio::buffer(one_buffer_), 0, ec); if (ec) { return false; } if (n == 0) { return false; } else { received += n; if (!CheckOneBuffer(n)) { return false; } ResetBuffer(); } } return received == size_; }
static A_BOOL CheckBuffers(void) { int i; A_BOOL success = TRUE; BUFFER_PROC_LIST checkList[BUFFER_PROC_LIST_DEPTH]; /* assemble the list */ AssembleBufferList(checkList); /* scan the buffers and verify */ for (i = 0; i < BUFFER_PROC_LIST_DEPTH ; i++) { success = CheckOneBuffer((A_UINT16 *)checkList[i].pBuffer, checkList[i].length); if (!success) { AR_DEBUG_PRINTF(ATH_DEBUG_ERR, ("Buffer : 0x%X, Length:%d failed verify \n", (A_UINT32)checkList[i].pBuffer, checkList[i].length)); break; } } return success; }
static bool CheckBuffers(void) { int i; bool success = true; struct buffer_proc_list checkList[BUFFER_PROC_LIST_DEPTH]; /* assemble the list */ AssembleBufferList(checkList); /* scan the buffers and verify */ for (i = 0; i < BUFFER_PROC_LIST_DEPTH ; i++) { success = CheckOneBuffer((u16 *)checkList[i].pBuffer, checkList[i].length); if (!success) { AR_DEBUG_PRINTF(ATH_DEBUG_ERR, ("Buffer : 0x%X, Length:%d failed verify \n", (u32)checkList[i].pBuffer, checkList[i].length)); break; } } return success; }