mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-29 22:20:37 +00:00
mesh: send invite only in provisioner role if provisioning was started with provisioning_provisioner_start_provisioning
This commit is contained in:
parent
d76f65e8a1
commit
18d0ae0600
@ -234,6 +234,7 @@ static void provisioning_send_data(uint16_t the_pb_adv_cid){
|
||||
|
||||
typedef enum {
|
||||
PROVISIONER_IDLE,
|
||||
PROVISIONER_W4_LINK_OPENED,
|
||||
PROVISIONER_SEND_INVITE,
|
||||
PROVISIONER_W4_CAPABILITIES,
|
||||
PROVISIONER_W4_AUTH_CONFIGURATION,
|
||||
@ -646,6 +647,7 @@ static void provisioning_handle_pdu(uint8_t packet_type, uint16_t channel, uint8
|
||||
if (packet[0] != HCI_EVENT_MESH_META) break;
|
||||
switch (packet[2]){
|
||||
case MESH_SUBEVENT_PB_TRANSPORT_LINK_OPEN:
|
||||
if (provisioner_state != PROVISIONER_W4_LINK_OPENED) break;
|
||||
switch (mesh_subevent_pb_transport_link_open_get_status(packet)) {
|
||||
case ERROR_CODE_SUCCESS:
|
||||
printf("Link opened, sending Invite\n");
|
||||
@ -744,6 +746,7 @@ uint16_t provisioning_provisioner_start_provisioning(const uint8_t * device_uuid
|
||||
btstack_crypto_ecc_p256_generate_key(&prov_ecc_p256_request, prov_ec_q, &prov_key_generated, NULL);
|
||||
|
||||
if (pb_adv_cid == MESH_PB_TRANSPORT_INVALID_CID) {
|
||||
provisioner_state = PROVISIONER_W4_LINK_OPENED;
|
||||
pb_adv_cid = pb_adv_create_link(device_uuid);
|
||||
}
|
||||
return pb_adv_cid;
|
||||
|
@ -324,7 +324,7 @@ static void mesh_unprovisioned_beacon_handler(uint8_t packet_type, uint16_t chan
|
||||
oob = big_endian_read_16(packet, 17);
|
||||
printf("received unprovisioned device beacon, oob data %x, device uuid: ", oob);
|
||||
printf_hexdump(device_uuid, 16);
|
||||
pb_adv_create_link(device_uuid);
|
||||
provisioning_provisioner_start_provisioning(device_uuid);
|
||||
}
|
||||
|
||||
static int scan_hex_byte(const char * byte_string){
|
||||
|
Loading…
x
Reference in New Issue
Block a user