fix(NetworkConfigManager): refine IP conflict checking logic to ensure uniqueness of gateways on the same server, improving conflict notification accuracy
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m44s

This commit is contained in:
2026-01-25 21:32:51 +07:00
parent 49ee872e4a
commit f4f79a8f01
+11 -4
View File
@@ -660,9 +660,15 @@ function NetworkConfigManager() {
}
const newGateways = [];
// Для проверки конфликтов используем только IP из существующих gateways
// Для проверки конфликтов используем только IP из существующих gateways ТОГО ЖЕ СЕРВЕРА
// Рекурсивные gateways могут использовать те же IP, что и интерфейсы - это нормально
const usedGatewayIps = new Set(config.gateways.map(g => g.ip).filter(Boolean));
// Но на одном сервере не должно быть двух gateways с одинаковым IP
const usedGatewayIps = new Set(
config.gateways
.filter(g => g.serverId === templateServerId) // Только gateways того же сервера
.map(g => g.ip)
.filter(Boolean)
);
// Создаем маппинг между ID из шаблона и реальными ID после создания
const templateIdToRealId = new Map();
@@ -693,10 +699,11 @@ function NetworkConfigManager() {
ip = ip.trim();
// Проверяем конфликты только с другими gateways
// Проверяем конфликты только с другими gateways ТОГО ЖЕ СЕРВЕРА
// Для рекурсивных gateways разрешено использовать IP, которые уже используются в интерфейсах
// Но на одном сервере не должно быть двух gateways с одинаковым IP
if (usedGatewayIps.has(ip)) {
notify.warning(`IP ${ip} уже используется в другом gateway, пропущен`);
notify.warning(`IP ${ip} уже используется в другом gateway этого сервера, пропущен`);
return;
}