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

Commit a02df71d authored by Rahul Sabnis's avatar Rahul Sabnis
Browse files

Send a response to an smp security request depending on the callback event

Tag: #feature
Bug: 157038281
Test: Manual
Merged-In: Iadeb25a43b46f615b55a0dfb6e7723e5d1204351
Change-Id: Iadeb25a43b46f615b55a0dfb6e7723e5d1204351
parent 4460d944
Loading
Loading
Loading
Loading
+35 −30
Original line number Diff line number Diff line
@@ -249,12 +249,15 @@ bool SMP_PairCancel(const RawAddress& bd_addr) {
void SMP_SecurityGrant(const RawAddress& bd_addr, uint8_t res) {
  SMP_TRACE_EVENT("SMP_SecurityGrant ");

  // If just showing consent dialog, send response
  if (smp_cb.cb_evt == SMP_CONSENT_REQ_EVT) {
    // If JUSTWORKS, this is used to display the consent dialog
    if (smp_cb.selected_association_model == SMP_MODEL_SEC_CONN_JUSTWORKS) {
      if (res == SMP_SUCCESS) {
        smp_sm_event(&smp_cb, SMP_SC_NC_OK_EVT, NULL);
      } else {
      SMP_TRACE_WARNING("%s() - Consent dialog fails for JUSTWORKS", __func__);
        SMP_TRACE_WARNING("%s() - Consent dialog fails for JUSTWORKS",
                          __func__);
        /* send pairing failure */
        tSMP_INT_DATA smp_int_data;
        smp_int_data.status = SMP_NUMERIC_COMPAR_FAIL;
@@ -281,6 +284,8 @@ void SMP_SecurityGrant(const RawAddress& bd_addr, uint8_t res) {
        smp_sm_event(&smp_cb, SMP_AUTH_CMPL_EVT, &smp_int_data);
      }
    }
    return;
  }

  if (smp_cb.smp_over_br) {
    if (smp_cb.br_state != SMP_BR_STATE_WAIT_APP_RSP ||