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

Commit 47db68b1 authored by Sarvesh Kalwit's avatar Sarvesh Kalwit
Browse files

libbluetooth: Add BT_STATUS_DEVICE_NOT_FOUND metric

Add granularity to BT_STATUS_FAIL error codes by introducing a new
BT_STATUS_DEVICE_NOT_FOUND metric, to be used when an effort to find a
device by address or other identifier fails.

Bug: 340296381
Test: m -j
Flag: Exempt, metrics-only change
Change-Id: I22664bfd3e26242803b8b996a813e93011f32d16
parent 365a0ed8
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -134,6 +134,7 @@ class BtStatus(enum.IntEnum):
    JNI_THREAD_ATTACH_ERROR = 13
    WAKE_LOCK_ERROR = 14
    BT_STATUS_TIMEOUT = 15
    DEVICE_NOT_FOUND = 16


class SocketType(enum.IntEnum):
+9 −9
Original line number Diff line number Diff line
@@ -924,7 +924,7 @@ bt_status_t HeadsetInterface::Disconnect(RawAddress* bd_addr) {
  }
  if (!is_connected(bd_addr)) {
    log::error("{} is not connected", *bd_addr);
    return BT_STATUS_FAIL;
    return BT_STATUS_DEVICE_NOT_FOUND;
  }
  BTA_AgClose(btif_hf_cb[idx].handle);
  return BT_STATUS_SUCCESS;
@@ -964,7 +964,7 @@ bt_status_t HeadsetInterface::DisconnectAudio(RawAddress* bd_addr) {
  }
  if (!is_connected(bd_addr)) {
    log::error("{} is not connected", *bd_addr);
    return BT_STATUS_FAIL;
    return BT_STATUS_DEVICE_NOT_FOUND;
  }
  BTA_AgAudioClose(btif_hf_cb[idx].handle);
  return BT_STATUS_SUCCESS;
@@ -1051,7 +1051,7 @@ bt_status_t HeadsetInterface::VolumeControl(bthf_volume_type_t type, int volume,
  }
  if (!is_connected(bd_addr)) {
    log::error("{} is not connected", *bd_addr);
    return BT_STATUS_FAIL;
    return BT_STATUS_DEVICE_NOT_FOUND;
  }
  tBTA_AG_RES_DATA ag_res = {};
  ag_res.num = static_cast<uint16_t>(volume);
@@ -1099,7 +1099,7 @@ bt_status_t HeadsetInterface::CopsResponse(const char* cops,
  }
  if (!is_connected(bd_addr)) {
    log::error("{} is not connected", *bd_addr);
    return BT_STATUS_FAIL;
    return BT_STATUS_DEVICE_NOT_FOUND;
  }
  tBTA_AG_RES_DATA ag_res = {};
  /* Format the response */
@@ -1122,7 +1122,7 @@ bt_status_t HeadsetInterface::CindResponse(int svc, int num_active,
  }
  if (!is_connected(bd_addr)) {
    log::error("{} is not connected", *bd_addr);
    return BT_STATUS_FAIL;
    return BT_STATUS_DEVICE_NOT_FOUND;
  }
  tBTA_AG_RES_DATA ag_res = {};
  // per the errata 2043, call=1 implies atleast one call is in progress
@@ -1151,7 +1151,7 @@ bt_status_t HeadsetInterface::FormattedAtResponse(const char* rsp,
  }
  if (!is_connected(bd_addr)) {
    log::error("{} is not connected", *bd_addr);
    return BT_STATUS_FAIL;
    return BT_STATUS_DEVICE_NOT_FOUND;
  }
  /* Format the response and send */
  strncpy(ag_res.str, rsp, BTA_AG_AT_MAX_LEN);
@@ -1169,7 +1169,7 @@ bt_status_t HeadsetInterface::AtResponse(bthf_at_response_t response_code,
  }
  if (!is_connected(bd_addr)) {
    log::error("{} is not connected", *bd_addr);
    return BT_STATUS_FAIL;
    return BT_STATUS_DEVICE_NOT_FOUND;
  }
  send_at_result(
      (response_code == BTHF_AT_RESPONSE_OK) ? BTA_AG_OK_DONE : BTA_AG_OK_ERROR,
@@ -1189,7 +1189,7 @@ bt_status_t HeadsetInterface::ClccResponse(
  }
  if (!is_connected(bd_addr)) {
    log::error("{} is not connected", *bd_addr);
    return BT_STATUS_FAIL;
    return BT_STATUS_DEVICE_NOT_FOUND;
  }
  tBTA_AG_RES_DATA ag_res = {};
  /* Format the response */
@@ -1563,7 +1563,7 @@ bt_status_t HeadsetInterface::SendBsir(bool value, RawAddress* bd_addr) {
  }
  if (!is_connected(bd_addr)) {
    log::error("{} not connected", *bd_addr);
    return BT_STATUS_FAIL;
    return BT_STATUS_DEVICE_NOT_FOUND;
  }
  tBTA_AG_RES_DATA ag_result = {};
  ag_result.state = value;
+15 −15
Original line number Diff line number Diff line
@@ -350,7 +350,7 @@ static bt_status_t disconnect(const RawAddress* bd_addr) {
 ******************************************************************************/
static bt_status_t connect_audio(const RawAddress* bd_addr) {
  btif_hf_client_cb_t* cb = btif_hf_client_get_cb_by_bda(*bd_addr);
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_FAIL;
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_DEVICE_NOT_FOUND;

  CHECK_BTHF_CLIENT_SLC_CONNECTED(cb);

@@ -380,7 +380,7 @@ static bt_status_t connect_audio(const RawAddress* bd_addr) {
 ******************************************************************************/
static bt_status_t disconnect_audio(const RawAddress* bd_addr) {
  btif_hf_client_cb_t* cb = btif_hf_client_get_cb_by_bda(*bd_addr);
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_FAIL;
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_DEVICE_NOT_FOUND;

  CHECK_BTHF_CLIENT_SLC_CONNECTED(cb);

@@ -399,7 +399,7 @@ static bt_status_t disconnect_audio(const RawAddress* bd_addr) {
 ******************************************************************************/
static bt_status_t start_voice_recognition(const RawAddress* bd_addr) {
  btif_hf_client_cb_t* cb = btif_hf_client_get_cb_by_bda(*bd_addr);
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_FAIL;
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_DEVICE_NOT_FOUND;

  CHECK_BTHF_CLIENT_SLC_CONNECTED(cb);

@@ -421,7 +421,7 @@ static bt_status_t start_voice_recognition(const RawAddress* bd_addr) {
 ******************************************************************************/
static bt_status_t stop_voice_recognition(const RawAddress* bd_addr) {
  btif_hf_client_cb_t* cb = btif_hf_client_get_cb_by_bda(*bd_addr);
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_FAIL;
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_DEVICE_NOT_FOUND;

  CHECK_BTHF_CLIENT_SLC_CONNECTED(cb);

@@ -444,7 +444,7 @@ static bt_status_t stop_voice_recognition(const RawAddress* bd_addr) {
static bt_status_t volume_control(const RawAddress* bd_addr,
                                  bthf_client_volume_type_t type, int volume) {
  btif_hf_client_cb_t* cb = btif_hf_client_get_cb_by_bda(*bd_addr);
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_FAIL;
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_DEVICE_NOT_FOUND;

  CHECK_BTHF_CLIENT_SLC_CONNECTED(cb);

@@ -473,7 +473,7 @@ static bt_status_t volume_control(const RawAddress* bd_addr,
 ******************************************************************************/
static bt_status_t dial(const RawAddress* bd_addr, const char* number) {
  btif_hf_client_cb_t* cb = btif_hf_client_get_cb_by_bda(*bd_addr);
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_FAIL;
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_DEVICE_NOT_FOUND;

  CHECK_BTHF_CLIENT_SLC_CONNECTED(cb);

@@ -496,7 +496,7 @@ static bt_status_t dial(const RawAddress* bd_addr, const char* number) {
 ******************************************************************************/
static bt_status_t dial_memory(const RawAddress* bd_addr, int location) {
  btif_hf_client_cb_t* cb = btif_hf_client_get_cb_by_bda(*bd_addr);
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_FAIL;
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_DEVICE_NOT_FOUND;

  CHECK_BTHF_CLIENT_SLC_CONNECTED(cb);

@@ -517,7 +517,7 @@ static bt_status_t handle_call_action(const RawAddress* bd_addr,
                                      bthf_client_call_action_t action,
                                      int idx) {
  btif_hf_client_cb_t* cb = btif_hf_client_get_cb_by_bda(*bd_addr);
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_FAIL;
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_DEVICE_NOT_FOUND;

  CHECK_BTHF_CLIENT_SLC_CONNECTED(cb);

@@ -605,7 +605,7 @@ static bt_status_t handle_call_action(const RawAddress* bd_addr,
 ******************************************************************************/
static bt_status_t query_current_calls(const RawAddress* bd_addr) {
  btif_hf_client_cb_t* cb = btif_hf_client_get_cb_by_bda(*bd_addr);
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_FAIL;
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_DEVICE_NOT_FOUND;

  CHECK_BTHF_CLIENT_SLC_CONNECTED(cb);

@@ -628,7 +628,7 @@ static bt_status_t query_current_calls(const RawAddress* bd_addr) {
 ******************************************************************************/
static bt_status_t query_current_operator_name(const RawAddress* bd_addr) {
  btif_hf_client_cb_t* cb = btif_hf_client_get_cb_by_bda(*bd_addr);
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_FAIL;
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_DEVICE_NOT_FOUND;

  CHECK_BTHF_CLIENT_SLC_CONNECTED(cb);

@@ -647,7 +647,7 @@ static bt_status_t query_current_operator_name(const RawAddress* bd_addr) {
 ******************************************************************************/
static bt_status_t retrieve_subscriber_info(const RawAddress* bd_addr) {
  btif_hf_client_cb_t* cb = btif_hf_client_get_cb_by_bda(*bd_addr);
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_FAIL;
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_DEVICE_NOT_FOUND;

  CHECK_BTHF_CLIENT_SLC_CONNECTED(cb);

@@ -666,7 +666,7 @@ static bt_status_t retrieve_subscriber_info(const RawAddress* bd_addr) {
 ******************************************************************************/
static bt_status_t send_dtmf(const RawAddress* bd_addr, char code) {
  btif_hf_client_cb_t* cb = btif_hf_client_get_cb_by_bda(*bd_addr);
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_FAIL;
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_DEVICE_NOT_FOUND;

  CHECK_BTHF_CLIENT_SLC_CONNECTED(cb);

@@ -685,7 +685,7 @@ static bt_status_t send_dtmf(const RawAddress* bd_addr, char code) {
 ******************************************************************************/
static bt_status_t request_last_voice_tag_number(const RawAddress* bd_addr) {
  btif_hf_client_cb_t* cb = btif_hf_client_get_cb_by_bda(*bd_addr);
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_FAIL;
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_DEVICE_NOT_FOUND;

  CHECK_BTHF_CLIENT_SLC_CONNECTED(cb);

@@ -727,7 +727,7 @@ static void cleanup(void) {
static bt_status_t send_at_cmd(const RawAddress* bd_addr, int cmd, int val1,
                               int val2, const char* arg) {
  btif_hf_client_cb_t* cb = btif_hf_client_get_cb_by_bda(*bd_addr);
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_FAIL;
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_DEVICE_NOT_FOUND;

  CHECK_BTHF_CLIENT_SLC_CONNECTED(cb);

@@ -749,7 +749,7 @@ static bt_status_t send_at_cmd(const RawAddress* bd_addr, int cmd, int val1,
 ******************************************************************************/
static bt_status_t send_android_at(const RawAddress* bd_addr, const char* arg) {
  btif_hf_client_cb_t* cb = btif_hf_client_get_cb_by_bda(*bd_addr);
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_FAIL;
  if (cb == NULL || !is_connected(cb)) return BT_STATUS_DEVICE_NOT_FOUND;

  CHECK_BTHF_CLIENT_SLC_CONNECTED(cb);

+10 −10
Original line number Diff line number Diff line
@@ -781,7 +781,7 @@ bt_status_t btif_hh_virtual_unplug(const tAclLinkSpec& link_spec) {
          },
          link_spec));
    }
    return BT_STATUS_FAIL;
    return BT_STATUS_DEVICE_NOT_FOUND;
  }
}

@@ -1723,7 +1723,7 @@ static bt_status_t virtual_unplug(RawAddress* bd_addr, tBLE_ADDR_TYPE addr_type,
  btif_hh_device_t* p_dev = btif_hh_find_dev_by_link_spec(link_spec);
  if (!p_dev) {
    BTHH_LOG_UNKNOWN_LINK(link_spec);
    return BT_STATUS_FAIL;
    return BT_STATUS_DEVICE_NOT_FOUND;
  }
  btif_transfer_context(btif_hh_handle_evt, BTIF_HH_VUP_REQ_EVT,
                        (char*)&link_spec, sizeof(tAclLinkSpec), NULL);
@@ -1754,7 +1754,7 @@ static bt_status_t get_idle_time(RawAddress* bd_addr, tBLE_ADDR_TYPE addr_type,
  btif_hh_device_t* p_dev = btif_hh_find_connected_dev_by_link_spec(link_spec);
  if (p_dev == NULL) {
    BTHH_LOG_UNKNOWN_LINK(link_spec);
    return BT_STATUS_FAIL;
    return BT_STATUS_DEVICE_NOT_FOUND;
  }

  BTA_HhGetIdle(p_dev->dev_handle);
@@ -1786,7 +1786,7 @@ static bt_status_t set_idle_time(RawAddress* bd_addr, tBLE_ADDR_TYPE addr_type,
  btif_hh_device_t* p_dev = btif_hh_find_connected_dev_by_link_spec(link_spec);
  if (p_dev == NULL) {
    BTHH_LOG_UNKNOWN_LINK(link_spec);
    return BT_STATUS_FAIL;
    return BT_STATUS_DEVICE_NOT_FOUND;
  }

  BTA_HhSetIdle(p_dev->dev_handle, idle_time);
@@ -1869,7 +1869,7 @@ static bt_status_t get_protocol(RawAddress* bd_addr, tBLE_ADDR_TYPE addr_type,
  btif_hh_device_t* p_dev = btif_hh_find_connected_dev_by_link_spec(link_spec);
  if (!p_dev) {
    BTHH_LOG_UNKNOWN_LINK(link_spec);
    return BT_STATUS_FAIL;
    return BT_STATUS_DEVICE_NOT_FOUND;
  }

  BTA_HhGetProtoMode(p_dev->dev_handle);
@@ -1904,7 +1904,7 @@ static bt_status_t set_protocol(RawAddress* bd_addr, tBLE_ADDR_TYPE addr_type,
  p_dev = btif_hh_find_connected_dev_by_link_spec(link_spec);
  if (p_dev == NULL) {
    BTHH_LOG_UNKNOWN_LINK(link_spec);
    return BT_STATUS_FAIL;
    return BT_STATUS_DEVICE_NOT_FOUND;
  } else if (protocolMode != BTA_HH_PROTO_RPT_MODE &&
             protocolMode != BTA_HH_PROTO_BOOT_MODE) {
    log::warn("device proto_mode = {}", proto_mode);
@@ -1945,7 +1945,7 @@ static bt_status_t get_report(RawAddress* bd_addr, tBLE_ADDR_TYPE addr_type,
  p_dev = btif_hh_find_connected_dev_by_link_spec(link_spec);
  if (p_dev == NULL) {
    BTHH_LOG_UNKNOWN_LINK(link_spec);
    return BT_STATUS_FAIL;
    return BT_STATUS_DEVICE_NOT_FOUND;
  } else if (((int)reportType) <= BTA_HH_RPTT_RESRV ||
             ((int)reportType) > BTA_HH_RPTT_FEATURE) {
    log::error("report type={} not supported", reportType);
@@ -1987,7 +1987,7 @@ static bt_status_t get_report_reply(RawAddress* bd_addr,
  btif_hh_device_t* p_dev = btif_hh_find_connected_dev_by_link_spec(link_spec);
  if (p_dev == NULL) {
    BTHH_LOG_UNKNOWN_LINK(link_spec);
    return BT_STATUS_FAIL;
    return BT_STATUS_DEVICE_NOT_FOUND;
  }

  bta_hh_co_get_rpt_rsp(p_dev->dev_handle, (tBTA_HH_STATUS)status,
@@ -2022,7 +2022,7 @@ static bt_status_t set_report(RawAddress* bd_addr, tBLE_ADDR_TYPE addr_type,
  p_dev = btif_hh_find_connected_dev_by_link_spec(link_spec);
  if (p_dev == NULL) {
    BTHH_LOG_UNKNOWN_LINK(link_spec);
    return BT_STATUS_FAIL;
    return BT_STATUS_DEVICE_NOT_FOUND;
  } else if (((int)reportType) <= BTA_HH_RPTT_RESRV ||
             ((int)reportType) > BTA_HH_RPTT_FEATURE) {
    log::error("report type={} not supported", reportType);
@@ -2079,7 +2079,7 @@ static bt_status_t send_data(RawAddress* bd_addr, tBLE_ADDR_TYPE addr_type,
  btif_hh_device_t* p_dev = btif_hh_find_connected_dev_by_link_spec(link_spec);
  if (p_dev == NULL) {
    BTHH_LOG_UNKNOWN_LINK(link_spec);
    return BT_STATUS_FAIL;
    return BT_STATUS_DEVICE_NOT_FOUND;
  } else {
    int hex_bytes_filled;
    size_t len = (strlen(data) + 1) / 2;
+1 −1
Original line number Diff line number Diff line
@@ -246,7 +246,7 @@ static bt_status_t btpan_disconnect(const RawAddress* bd_addr) {
    BTA_PanClose(conn->handle);
    return BT_STATUS_SUCCESS;
  }
  return BT_STATUS_FAIL;
  return BT_STATUS_DEVICE_NOT_FOUND;
}

static int pan_pth = -1;
Loading