diff --git a/src/scripts/lib/linking-utils.lua b/src/scripts/lib/linking-utils.lua index b379a1eb..c8962c23 100644 --- a/src/scripts/lib/linking-utils.lua +++ b/src/scripts/lib/linking-utils.lua @@ -245,6 +245,9 @@ function lutils.getNodePeerId (node_id) return nil end +-- Maximum recursion depth for link-group compatibility checks. +local MAX_LINK_GROUP_HOPS = 32 + function lutils.canLink (properties, si_target) local target_props = si_target.properties @@ -272,7 +275,11 @@ function lutils.canLink (properties, si_target) local target_props = si_target.properties local target_link_group = target_props ["node.link-group"] - if hops == 8 then + if hops >= MAX_LINK_GROUP_HOPS then + Log.warning (string.format ( + "link-group hop count exceeded the %d-hop limit (at %d) while checking '%s' against target '%s'", + MAX_LINK_GROUP_HOPS, hops, tostring (link_group), + tostring (target_props ["node.name"]))) return false end