OSDN Git Service

Duplicate pair request are generated in BLE SMP.
authorZhihai Xu <zhihaixu@google.com>
Sat, 16 Nov 2013 03:16:26 +0000 (19:16 -0800)
committerZhihai Xu <zhihaixu@google.com>
Fri, 6 Dec 2013 01:28:35 +0000 (17:28 -0800)
SMP_SEC_REQUEST_EVT  will trigger pair request for user permission.
Due to callback event isn't cleared, duplicate pare request is generated.
The fix is to clear the callback event after grant the permission for the pair request.
To avoid reporting duplicae SMP_SEC_REQUEST_EVT.

bug:11716879
Change-Id: I90805caa6f5360f8d64edfb711703e0e05863ea4

stack/smp/smp_api.c

index cfde2d4..b802376 100644 (file)
@@ -204,6 +204,9 @@ void SMP_SecurityGrant(BD_ADDR bd_addr, UINT8 res)
         memcmp (smp_cb.pairing_bda, bd_addr, BD_ADDR_LEN))
         return;
 
+    /* clear the SMP_SEC_REQUEST_EVT event after get grant */
+    /* avoid generate duplicate pair request */
+    smp_cb.cb_evt = 0;
     smp_sm_event(&smp_cb, SMP_API_SEC_GRANT_EVT, &res);
 }