You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by GitBox <gi...@apache.org> on 2017/11/03 23:43:23 UTC

[GitHub] ccollins476ad closed pull request #629: BLE Host - Delay sync callback after IRK restore

ccollins476ad closed pull request #629: BLE Host - Delay sync callback after IRK restore
URL: https://github.com/apache/mynewt-core/pull/629
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/apps/blecent/src/main.c b/apps/blecent/src/main.c
index 293d6378d..18849bee8 100755
--- a/apps/blecent/src/main.c
+++ b/apps/blecent/src/main.c
@@ -405,6 +405,11 @@ blecent_gap_event(struct ble_gap_event *event, void *arg)
         blecent_scan();
         return 0;
 
+    case BLE_GAP_EVENT_DISC_COMPLETE:
+        BLECENT_LOG(INFO, "discovery complete; reason=%d\n",
+                    event->disc_complete.reason);
+        return 0;
+
     case BLE_GAP_EVENT_ENC_CHANGE:
         /* Encryption has been enabled or disabled for this connection. */
         BLECENT_LOG(INFO, "encryption change event; status=%d ",
diff --git a/apps/bleprph/src/main.c b/apps/bleprph/src/main.c
index 7e344acfc..343ca6ad9 100755
--- a/apps/bleprph/src/main.c
+++ b/apps/bleprph/src/main.c
@@ -204,6 +204,12 @@ bleprph_gap_event(struct ble_gap_event *event, void *arg)
         BLEPRPH_LOG(INFO, "\n");
         return 0;
 
+    case BLE_GAP_EVENT_ADV_COMPLETE:
+        BLEPRPH_LOG(INFO, "advertise complete; reason=%d",
+                    event->adv_complete.reason);
+        bleprph_advertise();
+        return 0;
+
     case BLE_GAP_EVENT_ENC_CHANGE:
         /* Encryption has been enabled or disabled for this connection. */
         BLEPRPH_LOG(INFO, "encryption change event; status=%d ",
diff --git a/apps/bleprph_oic/src/main.c b/apps/bleprph_oic/src/main.c
index 2efb9067c..108a46049 100755
--- a/apps/bleprph_oic/src/main.c
+++ b/apps/bleprph_oic/src/main.c
@@ -214,6 +214,12 @@ bleprph_gap_event(struct ble_gap_event *event, void *arg)
         BLEPRPH_LOG(INFO, "\n");
         return 0;
 
+    case BLE_GAP_EVENT_ADV_COMPLETE:
+        BLEPRPH_LOG(INFO, "advertise complete; reason=%d\n",
+                    event->adv_complete.reason);
+        bleprph_advertise();
+        return 0;
+
     case BLE_GAP_EVENT_ENC_CHANGE:
         /* Encryption has been enabled or disabled for this connection. */
         BLEPRPH_LOG(INFO, "encryption change event; status=%d ",
diff --git a/apps/blesplit/src/main.c b/apps/blesplit/src/main.c
index 56773cc43..b757c55fc 100755
--- a/apps/blesplit/src/main.c
+++ b/apps/blesplit/src/main.c
@@ -196,6 +196,13 @@ blesplit_gap_event(struct ble_gap_event *event, void *arg)
         BLESPLIT_LOG(INFO, "\n");
         return 0;
 
+
+    case BLE_GAP_EVENT_ADV_COMPLETE:
+        BLESPLIT_LOG(INFO, "advertise complete; reason=%d\n",
+                     event->adv_complete.reason);
+        blesplit_advertise();
+        return 0;
+
     case BLE_GAP_EVENT_ENC_CHANGE:
         /* Encryption has been enabled or disabled for this connection. */
         BLESPLIT_LOG(INFO, "encryption change event; status=%d ",
diff --git a/apps/bletiny/src/main.c b/apps/bletiny/src/main.c
index 1e0c67122..8445ff4ff 100755
--- a/apps/bletiny/src/main.c
+++ b/apps/bletiny/src/main.c
@@ -1023,14 +1023,6 @@ bletiny_gap_event(struct ble_gap_event *event, void *arg)
 
         return 0;
 
-    case BLE_GAP_EVENT_DISC_COMPLETE:
-        console_printf("scanning finished\n");
-        return 0;
-
-    case BLE_GAP_EVENT_ADV_COMPLETE:
-        console_printf("advertising complete.\n");
-        return 0;
-
     case BLE_GAP_EVENT_CONN_UPDATE:
         console_printf("connection updated; status=%d ",
                        event->conn_update.status);
@@ -1044,7 +1036,7 @@ bletiny_gap_event(struct ble_gap_event *event, void *arg)
         *event->conn_update_req.self_params =
             *event->conn_update_req.peer_params;
         return 0;
-
+ 
     case BLE_GAP_EVENT_PASSKEY_ACTION:
         console_printf("passkey action event; action=%d",
                        event->passkey.params.action);
@@ -1055,6 +1047,16 @@ bletiny_gap_event(struct ble_gap_event *event, void *arg)
         console_printf("\n");
         return 0;
 
+    case BLE_GAP_EVENT_DISC_COMPLETE:
+        console_printf("discovery complete; reason=%d\n",
+                       event->disc_complete.reason);
+        return 0;
+
+    case BLE_GAP_EVENT_ADV_COMPLETE:
+        console_printf("advertise complete; reason=%d\n",
+                       event->adv_complete.reason);
+        return 0;
+
     case BLE_GAP_EVENT_ENC_CHANGE:
         console_printf("encryption change event; status=%d ",
                        event->enc_change.status);
diff --git a/apps/bleuart/src/main.c b/apps/bleuart/src/main.c
index d269c37c1..4f15ff4b0 100755
--- a/apps/bleuart/src/main.c
+++ b/apps/bleuart/src/main.c
@@ -160,6 +160,12 @@ bleuart_gap_event(struct ble_gap_event *event, void *arg)
         bleuart_advertise();
         return 0;
 
+
+    case BLE_GAP_EVENT_ADV_COMPLETE:
+        /* Advertising terminated; resume advertising. */
+        bleuart_advertise();
+        return 0;
+
     case BLE_GAP_EVENT_REPEAT_PAIRING:
         /* We already have a bond with the peer, but it is attempting to
          * establish a new secure link.  This app sacrifices security for
diff --git a/apps/btshell/src/main.c b/apps/btshell/src/main.c
index 46e6374fb..db3c1b306 100755
--- a/apps/btshell/src/main.c
+++ b/apps/btshell/src/main.c
@@ -1023,14 +1023,6 @@ btshell_gap_event(struct ble_gap_event *event, void *arg)
 
         return 0;
 
-    case BLE_GAP_EVENT_DISC_COMPLETE:
-        console_printf("scanning finished\n");
-        return 0;
-
-    case BLE_GAP_EVENT_ADV_COMPLETE:
-        console_printf("advertising complete.\n");
-        return 0;
-
     case BLE_GAP_EVENT_CONN_UPDATE:
         console_printf("connection updated; status=%d ",
                        event->conn_update.status);
@@ -1055,6 +1047,17 @@ btshell_gap_event(struct ble_gap_event *event, void *arg)
         console_printf("\n");
         return 0;
 
+
+    case BLE_GAP_EVENT_DISC_COMPLETE:
+        console_printf("discovery complete; reason=%d\n",
+                       event->disc_complete.reason);
+        return 0;
+
+    case BLE_GAP_EVENT_ADV_COMPLETE:
+        console_printf("advertise complete; reason=%d\n",
+                       event->adv_complete.reason);
+        return 0;
+
     case BLE_GAP_EVENT_ENC_CHANGE:
         console_printf("encryption change event; status=%d ",
                        event->enc_change.status);
diff --git a/apps/ocf_sample/src/ocf_ble.c b/apps/ocf_sample/src/ocf_ble.c
index d93bdd9f6..6324c5aa1 100644
--- a/apps/ocf_sample/src/ocf_ble.c
+++ b/apps/ocf_sample/src/ocf_ble.c
@@ -219,6 +219,12 @@ ocf_ble_gap_event(struct ble_gap_event *event, void *arg)
         OCF_BLE_LOG(INFO, "\n");
         return 0;
 
+    case BLE_GAP_EVENT_ADV_COMPLETE:
+        OCF_BLE_LOG(INFO, "advertise complete; reason=%d\n",
+                    event->adv_complete.reason);
+        ocf_ble_advertise();
+        return 0;
+
     case BLE_GAP_EVENT_ENC_CHANGE:
         /* Encryption has been enabled or disabled for this connection. */
         OCF_BLE_LOG(INFO, "encryption change event; status=%d ",
diff --git a/apps/sensors_test/src/main.c b/apps/sensors_test/src/main.c
index 79e20e7b9..35ebb4c85 100755
--- a/apps/sensors_test/src/main.c
+++ b/apps/sensors_test/src/main.c
@@ -279,6 +279,18 @@ sensor_oic_gap_event(struct ble_gap_event *event, void *arg)
         BLEPRPH_LOG(INFO, "\n");
         return 0;
 
+
+    case BLE_GAP_EVENT_DISC_COMPLETE:
+        BLEPRPH_LOG(INFO, "discovery complete; reason=%d\n",
+                    event->disc_complete.reason);
+        return 0;
+
+    case BLE_GAP_EVENT_ADV_COMPLETE:
+        BLEPRPH_LOG(INFO, "advertise complete; reason=%d\n",
+                    event->adv_complete.reason);
+        sensor_oic_advertise();
+        return 0;
+
     case BLE_GAP_EVENT_ENC_CHANGE:
         /* Encryption has been enabled or disabled for this connection. */
         BLEPRPH_LOG(INFO, "encryption change event; status=%d ",
diff --git a/apps/testbench/src/tbb.c b/apps/testbench/src/tbb.c
index 232975fe5..39321beec 100644
--- a/apps/testbench/src/tbb.c
+++ b/apps/testbench/src/tbb.c
@@ -219,6 +219,12 @@ tbb_gap_event(struct ble_gap_event *event, void *arg)
         TBB_LOG(INFO, "\n");
         return 0;
 
+    case BLE_GAP_EVENT_ADV_COMPLETE:
+        TBB_LOG(INFO, "advertise complete; reason=%d\n",
+                event->adv_complete.reason);
+        tbb_advertise();
+        return 0;
+
     case BLE_GAP_EVENT_ENC_CHANGE:
         /* Encryption has been enabled or disabled for this connection. */
         TBB_LOG(INFO, "encryption change event; status=%d ",
diff --git a/net/nimble/host/src/ble_hs.c b/net/nimble/host/src/ble_hs.c
index 6f7c8a44e..c55cb9253 100644
--- a/net/nimble/host/src/ble_hs.c
+++ b/net/nimble/host/src/ble_hs.c
@@ -306,9 +306,6 @@ ble_hs_sync(void)
     rc = ble_hs_startup_go();
     if (rc == 0) {
         ble_hs_sync_state = BLE_HS_SYNC_STATE_GOOD;
-        if (ble_hs_cfg.sync_cb != NULL) {
-            ble_hs_cfg.sync_cb();
-        }
     } else {
         ble_hs_sync_state = BLE_HS_SYNC_STATE_BAD;
     }
@@ -316,6 +313,13 @@ ble_hs_sync(void)
     ble_hs_timer_sched(BLE_HS_SYNC_RETRY_RATE);
 
     if (rc == 0) {
+        rc = ble_hs_misc_restore_irks();
+        assert(rc == 0);
+
+        if (ble_hs_cfg.sync_cb != NULL) {
+            ble_hs_cfg.sync_cb();
+        }
+
         STATS_INC(ble_hs_stats, sync);
     }
 
@@ -556,9 +560,6 @@ ble_hs_start(void)
 
     ble_hs_sync();
 
-    rc = ble_hs_misc_restore_irks();
-    assert(rc == 0);
-
     return 0;
 }
 


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services