Bluetooth: Mesh: Logic fix for recvd unseg msgs
Fixed transport layer logic causing excessive processing of some unsegmented messages Signed-off-by: Stine Åkredalen <stine.akredalen@nordicsemi.no>
This commit is contained in:
parent
51c0cb9f5c
commit
c89bca6f3f
1 changed files with 8 additions and 0 deletions
|
@ -1666,6 +1666,14 @@ int bt_mesh_trans_recv(struct net_buf_simple *buf, struct bt_mesh_net_rx *rx)
|
||||||
err = trans_seg(buf, rx, &pdu_type, &seq_auth, &seg_count);
|
err = trans_seg(buf, rx, &pdu_type, &seq_auth, &seg_count);
|
||||||
} else {
|
} else {
|
||||||
seg_count = 1;
|
seg_count = 1;
|
||||||
|
|
||||||
|
/* Avoid further processing of unsegmented messages that are not a
|
||||||
|
* local match nor a Friend match, with the exception of ctl messages.
|
||||||
|
*/
|
||||||
|
if (!rx->ctl && !rx->local_match && !rx->friend_match) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
err = trans_unseg(buf, rx, &seq_auth);
|
err = trans_unseg(buf, rx, &seq_auth);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue