Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dde4c846 authored by William Escande's avatar William Escande Committed by Automerger Merge Worker
Browse files

Merge changes from topic "cherrypicker-L67000000958213112:N89700001329421629"...

Merge changes from topic "cherrypicker-L67000000958213112:N89700001329421629" into tm-qpr-dev am: d80186c1

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/21031525



Change-Id: I5543fd3a037edbff43d25791aad153e67e54843d
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 139c5e7c d80186c1
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -130,6 +130,7 @@ bool H4Parser::Consume(const uint8_t* buffer, int32_t bytes_read) {
      packet_type_ = *buffer;
      packet_.clear();
      break;

    case HCI_RECOVERY: {
      // Skip all received bytes until the HCI Reset command is received.
      // The parser can end up in a bad state when the host is restarted.
@@ -149,12 +150,16 @@ bool H4Parser::Consume(const uint8_t* buffer, int32_t bytes_read) {
        }
      }

      // Received full reset command.
      if (packet_.size() == reset_command.size()) {
        LOG_INFO("Received HCI Reset command, exiting recovery state");
        // Pop the Idc from the received packet.
        packet_.erase(packet_.begin());
        bytes_wanted_ = 0;
      }
      break;
    }

    case HCI_PREAMBLE:
    case HCI_PAYLOAD:
      packet_.insert(packet_.end(), buffer, buffer + bytes_read);
+3 −3
Original line number Diff line number Diff line
@@ -176,9 +176,9 @@ TEST_F(H4ParserTest, Recovery) {

  // Validate that the HCI Reset command was correctly received.
  ASSERT_EQ(type_, PacketType::COMMAND);
  ASSERT_EQ(packet_.size(), reset_command.size());
  for (size_t i = 0; i < packet_.size(); i++) {
    ASSERT_EQ(packet_[i], reset_command[i]);
  ASSERT_EQ(packet_.size(), reset_command.size() - 1);
  for (size_t i = 1; i < packet_.size(); i++) {
    ASSERT_EQ(packet_[i - 1], reset_command[i]);
  }
}