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

Commit 54886018 authored by Chris Manton's avatar Chris Manton
Browse files

stack::l2cap class enum-ify tL2CAP_LE_RESULT_CODE

Bug: 361110472
Test: m .
Flag: EXEMPT, Mechanical Refactor

Change-Id: Id2dca12202ae93fbed2d7e38ddbf40773876e23c
parent 8c3a57b9
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -263,8 +263,9 @@ struct eatt_impl {
      if (key_size < min_key_size) {
        std::vector<uint16_t> empty;
        log::error("Insufficient key size ({}<{}) for device {}", key_size, min_key_size, bda);
        if (!L2CA_ConnectCreditBasedRsp(bda, identifier, empty,
                                        L2CAP_LE_RESULT_INSUFFICIENT_ENCRYP_KEY_SIZE, nullptr)) {
        if (!L2CA_ConnectCreditBasedRsp(
                    bda, identifier, empty,
                    tL2CAP_LE_RESULT_CODE::L2CAP_LE_RESULT_INSUFFICIENT_ENCRYP_KEY_SIZE, nullptr)) {
          log::warn("Unable to respond L2CAP le_coc credit indication peer:{}", bda);
        }
        return;
@@ -303,9 +304,10 @@ struct eatt_impl {
        !BTM_IsEncrypted(bda, BT_TRANSPORT_LE)) {
      /* If Link is not encrypted, we shall not accept EATT channel creation. */
      std::vector<uint16_t> empty;
      uint16_t result = L2CAP_LE_RESULT_INSUFFICIENT_AUTHENTICATION;
      tL2CAP_LE_RESULT_CODE result =
              tL2CAP_LE_RESULT_CODE::L2CAP_LE_RESULT_INSUFFICIENT_AUTHENTICATION;
      if (BTM_IsLinkKeyKnown(bda, BT_TRANSPORT_LE)) {
        result = L2CAP_LE_RESULT_INSUFFICIENT_ENCRYP;
        result = tL2CAP_LE_RESULT_CODE::L2CAP_LE_RESULT_INSUFFICIENT_ENCRYP;
      }
      log::error("ACL to device {} is unencrypted.", bda);
      if (!L2CA_ConnectCreditBasedRsp(bda, identifier, empty, result, nullptr)) {
+3 −2
Original line number Diff line number Diff line
@@ -418,7 +418,8 @@ void L2CA_DeregisterLECoc(uint16_t psm);

[[nodiscard]] bool L2CA_ConnectCreditBasedRsp(const RawAddress& p_bd_addr, uint8_t id,
                                              std::vector<uint16_t>& accepted_lcids,
                                              uint16_t result, tL2CAP_LE_CFG_INFO* p_cfg);
                                              tL2CAP_LE_RESULT_CODE result,
                                              tL2CAP_LE_CFG_INFO* p_cfg);
/*******************************************************************************
 *
 * Function         L2CA_DisconnectReq
@@ -852,7 +853,7 @@ public:
          uint16_t psm, const RawAddress& bd_addr, tL2CAP_LE_CFG_INFO* p_cfg) override;
  [[nodiscard]] bool L2CA_ConnectCreditBasedRsp(const RawAddress& bd_addr, uint8_t id,
                                                std::vector<uint16_t>& accepted_lcids,
                                                uint16_t result,
                                                tL2CAP_LE_RESULT_CODE result,
                                                tL2CAP_LE_CFG_INFO* p_cfg) override;
  [[nodiscard]] uint16_t L2CA_GetPeerLECocCredit(const RawAddress& bd_addr, uint16_t lcid) override;
  [[nodiscard]] bool L2CA_ReconfigCreditBasedConnsReq(const RawAddress& bd_addr,
+2 −1
Original line number Diff line number Diff line
@@ -470,7 +470,8 @@ public:
   **
   ******************************************************************************/
  virtual bool L2CA_ConnectCreditBasedRsp(const RawAddress& p_bd_addr, uint8_t id,
                                          std::vector<uint16_t>& accepted_lcids, uint16_t result,
                                          std::vector<uint16_t>& accepted_lcids,
                                          tL2CAP_LE_RESULT_CODE result,
                                          tL2CAP_LE_CFG_INFO* p_cfg) = 0;

  /*******************************************************************************
+15 −15
Original line number Diff line number Diff line
@@ -113,7 +113,7 @@

/* Define the LE L2CAP Connection Response Result codes
 */
enum tL2CAP_LE_RESULT_CODE : uint16_t {
enum class tL2CAP_LE_RESULT_CODE : uint16_t {
  L2CAP_LE_RESULT_CONN_OK = 0x0000,
  L2CAP_LE_RESULT_NO_PSM = 0x0002,
  L2CAP_LE_RESULT_NO_RESOURCES = 0x0004,
@@ -132,20 +132,20 @@ enum tL2CAP_LE_RESULT_CODE : uint16_t {

inline std::string l2cap_le_result_code_text(const tL2CAP_LE_RESULT_CODE& code) {
  switch (code) {
    CASE_RETURN_STRING_HEX04(L2CAP_LE_RESULT_CONN_OK);
    CASE_RETURN_STRING_HEX04(L2CAP_LE_RESULT_NO_PSM);
    CASE_RETURN_STRING_HEX04(L2CAP_LE_RESULT_NO_RESOURCES);
    CASE_RETURN_STRING_HEX04(L2CAP_LE_RESULT_INSUFFICIENT_AUTHENTICATION);
    CASE_RETURN_STRING_HEX04(L2CAP_LE_RESULT_INSUFFICIENT_AUTHORIZATION);
    CASE_RETURN_STRING_HEX04(L2CAP_LE_RESULT_INSUFFICIENT_ENCRYP_KEY_SIZE);
    CASE_RETURN_STRING_HEX04(L2CAP_LE_RESULT_INSUFFICIENT_ENCRYP);
    CASE_RETURN_STRING_HEX04(L2CAP_LE_RESULT_INVALID_SOURCE_CID);
    CASE_RETURN_STRING_HEX04(L2CAP_LE_RESULT_SOURCE_CID_ALREADY_ALLOCATED);
    CASE_RETURN_STRING_HEX04(L2CAP_LE_RESULT_UNACCEPTABLE_PARAMETERS);
    CASE_RETURN_STRING_HEX04(L2CAP_LE_RESULT_INVALID_PARAMETERS);
    CASE_RETURN_STRING_HEX04(L2CAP_LE_RESULT_CONN_PENDING);
    CASE_RETURN_STRING_HEX04(L2CAP_LE_RESULT_CONN_PENDING_AUTHENTICATION);
    CASE_RETURN_STRING_HEX04(L2CAP_LE_RESULT_CONN_PENDING_AUTHORIZATION);
    CASE_RETURN_STRING_HEX04(tL2CAP_LE_RESULT_CODE::L2CAP_LE_RESULT_CONN_OK);
    CASE_RETURN_STRING_HEX04(tL2CAP_LE_RESULT_CODE::L2CAP_LE_RESULT_NO_PSM);
    CASE_RETURN_STRING_HEX04(tL2CAP_LE_RESULT_CODE::L2CAP_LE_RESULT_NO_RESOURCES);
    CASE_RETURN_STRING_HEX04(tL2CAP_LE_RESULT_CODE::L2CAP_LE_RESULT_INSUFFICIENT_AUTHENTICATION);
    CASE_RETURN_STRING_HEX04(tL2CAP_LE_RESULT_CODE::L2CAP_LE_RESULT_INSUFFICIENT_AUTHORIZATION);
    CASE_RETURN_STRING_HEX04(tL2CAP_LE_RESULT_CODE::L2CAP_LE_RESULT_INSUFFICIENT_ENCRYP_KEY_SIZE);
    CASE_RETURN_STRING_HEX04(tL2CAP_LE_RESULT_CODE::L2CAP_LE_RESULT_INSUFFICIENT_ENCRYP);
    CASE_RETURN_STRING_HEX04(tL2CAP_LE_RESULT_CODE::L2CAP_LE_RESULT_INVALID_SOURCE_CID);
    CASE_RETURN_STRING_HEX04(tL2CAP_LE_RESULT_CODE::L2CAP_LE_RESULT_SOURCE_CID_ALREADY_ALLOCATED);
    CASE_RETURN_STRING_HEX04(tL2CAP_LE_RESULT_CODE::L2CAP_LE_RESULT_UNACCEPTABLE_PARAMETERS);
    CASE_RETURN_STRING_HEX04(tL2CAP_LE_RESULT_CODE::L2CAP_LE_RESULT_INVALID_PARAMETERS);
    CASE_RETURN_STRING_HEX04(tL2CAP_LE_RESULT_CODE::L2CAP_LE_RESULT_CONN_PENDING);
    CASE_RETURN_STRING_HEX04(tL2CAP_LE_RESULT_CODE::L2CAP_LE_RESULT_CONN_PENDING_AUTHENTICATION);
    CASE_RETURN_STRING_HEX04(tL2CAP_LE_RESULT_CODE::L2CAP_LE_RESULT_CONN_PENDING_AUTHORIZATION);
    break;
  }
  RETURN_UNKNOWN_TYPE_STRING(tL2CAP_LE_RESULT_CODE, code);
+3 −2
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@

#include <cstdint>
#include <string>
#include <vector>

#include "hal/snoop_logger.h"
#include "hci/controller_interface.h"
@@ -650,7 +651,7 @@ uint16_t L2CA_GetPeerLECocCredit(const RawAddress& bd_addr, uint16_t lcid) {
 *
 ******************************************************************************/
bool L2CA_ConnectCreditBasedRsp(const RawAddress& p_bd_addr, uint8_t id,
                                std::vector<uint16_t>& accepted_lcids, uint16_t result,
                                std::vector<uint16_t>& accepted_lcids, tL2CAP_LE_RESULT_CODE result,
                                tL2CAP_LE_CFG_INFO* p_cfg) {
  log::verbose("BDA: {} num of cids: {} Result: {}", p_bd_addr, int(accepted_lcids.size()), result);

@@ -694,7 +695,7 @@ bool L2CA_ConnectCreditBasedRsp(const RawAddress& p_bd_addr, uint8_t id,
          .bd_addr = p_bd_addr,
          .hci_status{},
          .psm{},
          .l2cap_result = result,
          .l2cap_result = static_cast<tL2CAP_CONN>(result),
          .l2cap_status{},
          .remote_cid{},
          .lcids = accepted_lcids,
Loading