From ec4be71af60dd486a2d047e1fd36c12f507fee3a Mon Sep 17 00:00:00 2001 From: yellowcooln Date: Thu, 1 Jan 2026 02:23:59 +0000 Subject: [PATCH] Limit long route path hashes --- .env.example | 1 + backend/app.py | 3 +++ 2 files changed, 4 insertions(+) diff --git a/.env.example b/.env.example index 92861c0..8c7576c 100644 --- a/.env.example +++ b/.env.example @@ -33,6 +33,7 @@ DEVICE_TTL_SECONDS=259200 HEAT_TTL_SECONDS=600 TRAIL_LEN=50 ROUTE_TTL_SECONDS=120 +ROUTE_PATH_MAX_LEN=16 ROUTE_PAYLOAD_TYPES=8,9,2,5,4 MESSAGE_ORIGIN_TTL_SECONDS=300 ROUTE_HISTORY_ENABLED=true diff --git a/backend/app.py b/backend/app.py index 74c7f87..d9bdff6 100644 --- a/backend/app.py +++ b/backend/app.py @@ -47,6 +47,7 @@ DEVICE_TTL_SECONDS = int(os.getenv("DEVICE_TTL_SECONDS", "300")) TRAIL_LEN = int(os.getenv("TRAIL_LEN", "30")) ROUTE_TTL_SECONDS = int(os.getenv("ROUTE_TTL_SECONDS", "120")) ROUTE_PAYLOAD_TYPES = os.getenv("ROUTE_PAYLOAD_TYPES", "8,9,2,5,4") +ROUTE_PATH_MAX_LEN = int(os.getenv("ROUTE_PATH_MAX_LEN", "16")) ROUTE_HISTORY_ENABLED = os.getenv("ROUTE_HISTORY_ENABLED", "true").lower() == "true" ROUTE_HISTORY_HOURS = float(os.getenv("ROUTE_HISTORY_HOURS", "24")) ROUTE_HISTORY_MAX_SEGMENTS = int(os.getenv("ROUTE_HISTORY_MAX_SEGMENTS", "40000")) @@ -451,6 +452,8 @@ def _route_points_from_hashes(path_hashes: List[Any], origin_id: Optional[str], key = _normalize_node_hash(raw) if key: normalized.append(key) + if ROUTE_PATH_MAX_LEN > 0 and len(normalized) > ROUTE_PATH_MAX_LEN: + return None, [] receiver_hash = _node_hash_from_device_id(receiver_id) if receiver_id else None origin_hash = _node_hash_from_device_id(origin_id) if origin_id else None