From ec58556c364d71d3d79824d24e1eb6a12eabfc94 Mon Sep 17 00:00:00 2001 From: OpenCode Date: Thu, 4 Jun 2026 22:09:10 +0000 Subject: [PATCH] fix(cluster): trust non-bridge ip_address from heartbeat payload --- services/mam-api/src/routes/cluster.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/services/mam-api/src/routes/cluster.js b/services/mam-api/src/routes/cluster.js index fc34301..dad3c67 100644 --- a/services/mam-api/src/routes/cluster.js +++ b/services/mam-api/src/routes/cluster.js @@ -43,9 +43,10 @@ function pickIp(reportedIp, reqIp) { const clean = (s) => (s || '').replace(/^::ffff:/, ''); const isDockerBridge = (ip) => /^172\.17\./.test(ip || ''); const r = clean(reqIp); - if (!reportedIp) return r || null; - if (isDockerBridge(reportedIp) && r && !isDockerBridge(r)) return r; - return reportedIp; + // Trust payload ip_address when present and not docker0 bridge + if (reportedIp && !isDockerBridge(reportedIp)) return reportedIp; + // Fall back to req.ip when payload missing or docker0 + return r || null; } function dockerRequest(path, method = 'GET', body = null) {