ble_mesh: fix provisioner failed to send msg to 0xFFFF

According to Mesh Spec 3.4.5.3, a node shall implement a local
network interface. And here we limit the situation just based
on the spec, and Provisioner directly sending the msg without
passing through the local network interface.
This commit is contained in:
lly 2019-12-02 17:42:40 +08:00
parent 197e54053e
commit 131a4e7c22

View file

@ -935,8 +935,9 @@ int bt_mesh_net_send(struct bt_mesh_net_tx *tx, struct net_buf *buf,
#endif
/* Deliver to local network interface if necessary */
if (bt_mesh_fixed_group_match(tx->ctx->addr) ||
bt_mesh_elem_find(tx->ctx->addr)) {
if (IS_ENABLED(CONFIG_BLE_MESH_NODE) && bt_mesh_is_provisioned() &&
(bt_mesh_fixed_group_match(tx->ctx->addr) ||
bt_mesh_elem_find(tx->ctx->addr))) {
if (cb && cb->start) {
cb->start(0, 0, cb_data);
}