Diff between bff0b258e3cc87e18a622cfbf3d38a82f41e5eac and b50c299a29ef9e02650f9f371b5fd5a9c037df17

Changed Files

File Additions Deletions Status
mesh/model.c +0 -21 modified
mesh/net.c +9 -0 modified

Full Patch

diff --git a/mesh/model.c b/mesh/model.c
index 961391f..b44e2f6 100644
--- a/mesh/model.c
+++ b/mesh/model.c
@@ -937,27 +937,6 @@ bool mesh_model_rx(struct mesh_node *node, bool szmict, uint32_t seq0,
 	if (!num_ele || IS_UNASSIGNED(addr))
 		goto done;
 
-	/*
-	 * In case of fixed group  addresses check if the
-	 * corresponding mode is enabled.
-	 */
-	if (dst == PROXIES_ADDRESS &&
-			(node_proxy_mode_get(node) != MESH_MODE_ENABLED))
-		goto done;
-
-	if (dst == FRIENDS_ADDRESS &&
-			(node_friend_mode_get(node) != MESH_MODE_ENABLED))
-		goto done;
-
-	if (dst == RELAYS_ADDRESS) {
-		uint8_t cnt;
-		uint16_t interval;
-
-		if (node_relay_mode_get(node, &cnt, &interval) !=
-							MESH_MODE_ENABLED)
-			goto done;
-	}
-
 	is_subscription = !(IS_UNICAST(dst));
 
 	for (i = 0; i < num_ele; i++) {
diff --git a/mesh/net.c b/mesh/net.c
index 26440b0..115a769 100644
--- a/mesh/net.c
+++ b/mesh/net.c
@@ -1658,6 +1658,15 @@ static bool msg_rxed(struct mesh_net *net, bool frnd, uint32_t iv_index,
 	}
 
 not_for_friend:
+	if (dst == FRIENDS_ADDRESS && !net->friend_enable)
+		return false;
+
+	if (dst == RELAYS_ADDRESS && !net->relay.enable)
+		return false;
+
+	if (dst == PROXIES_ADDRESS && !net->proxy_enable)
+		return false;
+
 	return mesh_model_rx(net->node, szmic, seqAuth, seq, iv_index, net_idx,
 						src, dst, key_aid, data, size);
 }