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

Commit 1bba66a9 authored by Zach Johnson's avatar Zach Johnson
Browse files

filter_cond_type is always BTM_CLR_INQUIRY_FILTER

Bug: 159815595
Tag: #refactor
Test: compile & verify basic functions working
Change-Id: I7450767649722c4a980bceee2b2282133066f991
parent e21e12b8
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -293,8 +293,6 @@ tBTM_STATUS bluetooth::shim::BTM_StartInquiry(tBTM_INQ_RESULTS_CB* p_results_cb,
  inqparms.max_resps = BTIF_DM_DEFAULT_INQ_MAX_RESULTS;
  inqparms.report_dup = true;

  inqparms.filter_cond_type = BTM_CLR_INQUIRY_FILTER;

  std::lock_guard<std::mutex> lock(btm_cb_mutex_);

  btm_cb.btm_inq_vars.inq_cmpl_info.num_resp = 0;
@@ -314,7 +312,7 @@ tBTM_STATUS bluetooth::shim::BTM_StartInquiry(tBTM_INQ_RESULTS_CB* p_results_cb,

  uint8_t classic_mode = inqparms.mode & 0x0f;
  if (!Stack::GetInstance()->GetBtm()->SetInquiryFilter(
          classic_mode, inqparms.filter_cond_type, inqparms.filter_cond)) {
          classic_mode, BTM_CLR_INQUIRY_FILTER, inqparms.filter_cond)) {
    LOG_WARN("%s Unable to set inquiry filter", __func__);
    return BTM_ERR_PROCESSING;
  }
+0 −8
Original line number Diff line number Diff line
@@ -1371,19 +1371,11 @@ uint8_t btm_ble_is_discoverable(const RawAddress& bda,
                                std::vector<uint8_t> const& adv_data) {
  uint8_t flag = 0, rt = 0;
  uint8_t data_len;
  tBTM_INQ_PARMS* p_cond = &btm_cb.btm_inq_vars.inqparms;

  /* for observer, always "discoverable */
  if (BTM_BLE_IS_OBS_ACTIVE(btm_cb.ble_ctr_cb.scan_activity))
    rt |= BTM_BLE_OBS_RESULT;

  /* does not match filter condition */
  if (p_cond->filter_cond_type == HCI_FILTER_COND_BD_ADDR &&
      bda != p_cond->filter_cond.bdaddr_cond) {
    BTM_TRACE_DEBUG("BD ADDR does not meet filter condition");
    return rt;
  }

  if (!adv_data.empty()) {
    const uint8_t* p_flag = AdvertiseDataParser::GetFieldByType(
        adv_data, BTM_BLE_AD_TYPE_FLAG, &data_len);
+5 −32
Original line number Diff line number Diff line
@@ -644,8 +644,6 @@ tBTM_STATUS BTM_StartInquiry(tBTM_INQ_RESULTS_CB* p_results_cb,
  p_inq->inqparms.max_resps = BTIF_DM_DEFAULT_INQ_MAX_RESULTS;
  p_inq->inqparms.report_dup = true;

  p_inq->inqparms.filter_cond_type = BTM_CLR_INQUIRY_FILTER;

  /* Initialize the inquiry variables */
  p_inq->state = BTM_INQ_ACTIVE_STATE;
  p_inq->p_inq_cmpl_cb = p_cmpl_cb;
@@ -683,36 +681,11 @@ tBTM_STATUS BTM_StartInquiry(tBTM_INQ_RESULTS_CB* p_results_cb,
    return status;
  }

  /* BR/EDR inquiry portion */
  /* If a filter is specified, then save it for later and clear the current
     filter.
     The setting of the filter is done upon completion of clearing of the
     previous
     filter.
  */
  switch (p_inq->inqparms.filter_cond_type) {
    case BTM_CLR_INQUIRY_FILTER:
  p_inq->state = BTM_INQ_SET_FILT_STATE;
      break;

    case HCI_FILTER_COND_DEVICE_CLASS:
    case HCI_FILTER_COND_BD_ADDR:
      /* The filter is not being used so simply clear it;
          the inquiry can start after this operation */
      p_inq->state = BTM_INQ_CLR_FILT_STATE;
      p_inq->inqparms.filter_cond_type = BTM_CLR_INQUIRY_FILTER;
      /* =============>>>> adding LE filtering here ????? */
      break;

    default:
      LOG(ERROR) << __func__ << ": invalid filter condition type "
                 << std::to_string(p_inq->inqparms.filter_cond_type);
      return (BTM_ILLEGAL_VALUE);
  }

  /* Before beginning the inquiry the current filter must be cleared, so
   * initiate the command */
  status = btm_set_inq_event_filter(p_inq->inqparms.filter_cond_type,
  status = btm_set_inq_event_filter(BTM_CLR_INQUIRY_FILTER,
                                    &p_inq->inqparms.filter_cond);
  if (status != BTM_CMD_STARTED) {
    LOG(ERROR) << __func__ << ": failed to set inquiry event filter";
@@ -1348,7 +1321,7 @@ void btm_event_filter_complete(uint8_t* p) {

      /* Check to see if a new filter needs to be set up */
      if (p_inq->state == BTM_INQ_CLR_FILT_STATE) {
        status = btm_set_inq_event_filter(p_inq->inqparms.filter_cond_type,
        status = btm_set_inq_event_filter(BTM_CLR_INQUIRY_FILTER,
                                          &p_inq->inqparms.filter_cond);
        if (status == BTM_CMD_STARTED) {
          p_inq->state = BTM_INQ_SET_FILT_STATE;
+0 −1
Original line number Diff line number Diff line
@@ -419,7 +419,6 @@ typedef struct /* contains the parameters passed to the inquiry functions */
  uint8_t max_resps; /* maximum number of responses to return */
  bool report_dup; /* report duplicated inquiry response with higher RSSI value
                      */
  uint8_t filter_cond_type; /* new devices, BD ADDR, COD, or No filtering */
  tBTM_INQ_FILT_COND filter_cond; /* filter value based on filter cond type */
} tBTM_INQ_PARMS;