When sending a message to a group address (either virtual or fixed), it has to be sent OTA even if successfully enqueued to an internal model. --- mesh/net.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mesh/net.c b/mesh/net.c index f07de4d8a..33b498135 100644 --- a/mesh/net.c +++ b/mesh/net.c @@ -3339,10 +3339,10 @@ bool mesh_net_app_send(struct mesh_net *net, bool frnd_cred, uint16_t src, szmic, seq & SEQ_ZERO_MASK, msg, msg_len); - /* If successfully enqued or delivered - * to Unicast address, we are done + /* If addressed to a unicast address and successfully enqueued, + * or delivered to one of our Unicast addresses we are done */ - if (result || src == dst || + if ((result && IS_UNICAST(dst)) || src == dst || (dst >= net->src_addr && dst <= net->last_addr)) { /* Adjust our seq_num for "virtual" delivery */ net->seq_num += seg_max; -- 2.24.0