Loading system/bta/ras/ras_server.cc +2 −12 Original line number Diff line number Diff line Loading @@ -445,12 +445,7 @@ class RasServerImpl : public bluetooth::ras::RasServer { } void OnGetRangingData(ControlPointCommand* command, ClientTracker* tracker) { if (command->operator_ != OPERATOR_NULL) { log::warn("Invalid operator 0x{:02x}", command->operator_); SendResponseCode(ResponseCodeValue::INVALID_OPERATOR, tracker); return; } const uint8_t* value = command->operand_; const uint8_t* value = command->parameter_; uint16_t ranging_counter; STREAM_TO_UINT16(ranging_counter, value); log::info("ranging_counter:{}", ranging_counter); Loading Loading @@ -495,12 +490,7 @@ class RasServerImpl : public bluetooth::ras::RasServer { }; void OnAckRangingData(ControlPointCommand* command, ClientTracker* tracker) { if (command->operator_ != OPERATOR_NULL) { log::warn("Invalid operator 0x{:02x}", command->operator_); SendResponseCode(ResponseCodeValue::INVALID_OPERATOR, tracker); return; } const uint8_t* value = command->operand_; const uint8_t* value = command->parameter_; uint16_t ranging_counter; STREAM_TO_UINT16(ranging_counter, value); log::info("ranging_counter:{}", ranging_counter); Loading system/bta/ras/ras_types.h +2 −5 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ namespace ras { static const uint16_t kFeatureSize = 0x04; static const uint16_t kRingingCounterSize = 0x02; static const uint16_t kCccValueSize = 0x02; static const uint16_t kControlPointCommandSize = 0x08; namespace uuid { static const uint16_t kRangingService16Bit = 0x7F7D; Loading Loading @@ -99,14 +98,12 @@ std::string GetResponseOpcodeValueText(ResponseCodeValue response_code_value); struct ControlPointCommand { Opcode opcode_; uint8_t operator_; uint8_t operand_[6]; uint8_t parameter_[4]; }; struct ControlPointResponse { EventCode event_code_; uint8_t operator_; uint8_t operand_[6]; uint8_t parameter_[4]; }; bool ParseControlPointCommand(ControlPointCommand* command, Loading system/bta/ras/ras_utils.cc +24 −5 Original line number Diff line number Diff line Loading @@ -58,13 +58,32 @@ std::string uuid::getUuidName(const bluetooth::Uuid& uuid) { bool ParseControlPointCommand(ControlPointCommand* command, const uint8_t* value, uint16_t len) { // Check for minimum expected length if (len != kControlPointCommandSize) { log::warn("Invalid len {}", len); switch (value[0]) { case (uint8_t)Opcode::ABORT_OPERATION: break; case (uint8_t)Opcode::PCT_FORMAT: { if (len < 2) { return false; } } break; case (uint8_t)Opcode::GET_RANGING_DATA: case (uint8_t)Opcode::ACK_RANGING_DATA: case (uint8_t)Opcode::FILTER: { if (len < 3) { return false; } } break; case (uint8_t)Opcode::RETRIEVE_LOST_RANGING_DATA_SEGMENTS: { if (len < 5) { return false; } } break; default: log::warn("unknown opcode 0x{:02x}", value[0]); return false; } command->opcode_ = static_cast<Opcode>(value[0]); command->operator_ = value[1]; std::memcpy(command->operand_, value + 2, 6); std::memcpy(command->parameter_, value + 1, len - 1); return true; } Loading Loading
system/bta/ras/ras_server.cc +2 −12 Original line number Diff line number Diff line Loading @@ -445,12 +445,7 @@ class RasServerImpl : public bluetooth::ras::RasServer { } void OnGetRangingData(ControlPointCommand* command, ClientTracker* tracker) { if (command->operator_ != OPERATOR_NULL) { log::warn("Invalid operator 0x{:02x}", command->operator_); SendResponseCode(ResponseCodeValue::INVALID_OPERATOR, tracker); return; } const uint8_t* value = command->operand_; const uint8_t* value = command->parameter_; uint16_t ranging_counter; STREAM_TO_UINT16(ranging_counter, value); log::info("ranging_counter:{}", ranging_counter); Loading Loading @@ -495,12 +490,7 @@ class RasServerImpl : public bluetooth::ras::RasServer { }; void OnAckRangingData(ControlPointCommand* command, ClientTracker* tracker) { if (command->operator_ != OPERATOR_NULL) { log::warn("Invalid operator 0x{:02x}", command->operator_); SendResponseCode(ResponseCodeValue::INVALID_OPERATOR, tracker); return; } const uint8_t* value = command->operand_; const uint8_t* value = command->parameter_; uint16_t ranging_counter; STREAM_TO_UINT16(ranging_counter, value); log::info("ranging_counter:{}", ranging_counter); Loading
system/bta/ras/ras_types.h +2 −5 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ namespace ras { static const uint16_t kFeatureSize = 0x04; static const uint16_t kRingingCounterSize = 0x02; static const uint16_t kCccValueSize = 0x02; static const uint16_t kControlPointCommandSize = 0x08; namespace uuid { static const uint16_t kRangingService16Bit = 0x7F7D; Loading Loading @@ -99,14 +98,12 @@ std::string GetResponseOpcodeValueText(ResponseCodeValue response_code_value); struct ControlPointCommand { Opcode opcode_; uint8_t operator_; uint8_t operand_[6]; uint8_t parameter_[4]; }; struct ControlPointResponse { EventCode event_code_; uint8_t operator_; uint8_t operand_[6]; uint8_t parameter_[4]; }; bool ParseControlPointCommand(ControlPointCommand* command, Loading
system/bta/ras/ras_utils.cc +24 −5 Original line number Diff line number Diff line Loading @@ -58,13 +58,32 @@ std::string uuid::getUuidName(const bluetooth::Uuid& uuid) { bool ParseControlPointCommand(ControlPointCommand* command, const uint8_t* value, uint16_t len) { // Check for minimum expected length if (len != kControlPointCommandSize) { log::warn("Invalid len {}", len); switch (value[0]) { case (uint8_t)Opcode::ABORT_OPERATION: break; case (uint8_t)Opcode::PCT_FORMAT: { if (len < 2) { return false; } } break; case (uint8_t)Opcode::GET_RANGING_DATA: case (uint8_t)Opcode::ACK_RANGING_DATA: case (uint8_t)Opcode::FILTER: { if (len < 3) { return false; } } break; case (uint8_t)Opcode::RETRIEVE_LOST_RANGING_DATA_SEGMENTS: { if (len < 5) { return false; } } break; default: log::warn("unknown opcode 0x{:02x}", value[0]); return false; } command->opcode_ = static_cast<Opcode>(value[0]); command->operator_ = value[1]; std::memcpy(command->operand_, value + 2, 6); std::memcpy(command->parameter_, value + 1, len - 1); return true; } Loading