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_;
  }
Exemple #2
0
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;
}
Exemple #3
0
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;
}