From 283fcc7ab8c057fd51d05b58027f23b840c0adb8 Mon Sep 17 00:00:00 2001 From: Zakaria Date: Wed, 30 Sep 2026 18:38:54 -0400 Subject: [PATCH] RDS port issue fixed --- .../github/hectorvent/floci/services/rds/RdsService.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/github/hectorvent/floci/services/rds/RdsService.java b/src/main/java/io/github/hectorvent/floci/services/rds/RdsService.java index 3be88b6..31e7b96 100644 --- a/src/main/java/io/github/hectorvent/floci/services/rds/RdsService.java +++ b/src/main/java/io/github/hectorvent/floci/services/rds/RdsService.java @@ -6030,7 +6030,7 @@ public class RdsService implements Resettable, ResourceProvider { int base = config.services().rds().proxyBasePort(); int max = config.services().rds().proxyMaxPort(); for (int port = base; port <= max; port++) { - if (usedPorts.add(port)) { + if (!persistedResourceUsesProxyPort(port) && usedPorts.add(port)) { return port; } } @@ -6038,6 +6038,12 @@ public class RdsService implements Resettable, ResourceProvider { "No available proxy ports in range " + base + "-" + max, 503); } + private boolean persistedResourceUsesProxyPort(int port) { + return allInstances().stream().anyMatch(instance -> instance.getProxyPort() == port) + || allClusters().stream().anyMatch(cluster -> cluster.getProxyPort() == port) + || allProxies().stream().anyMatch(proxy -> proxy.getProxyPort() == port); + } + private void releaseProxyPort(int port) { usedPorts.remove(port); }