fix(NetworkConfigManager): update IP conflict checking logic to differentiate between gateway and interface IPs, ensuring accurate conflict notifications during gateway creation
Publish Fast Tabler Docker image / build-and-push-fast (push) Has been cancelled
Publish Fast Tabler Docker image / build-and-push-fast (push) Has been cancelled
This commit is contained in:
@@ -660,7 +660,9 @@ function NetworkConfigManager() {
|
||||
}
|
||||
|
||||
const newGateways = [];
|
||||
const usedIps = new Set(config.gateways.map(g => g.ip));
|
||||
// Для проверки конфликтов используем только IP из существующих gateways
|
||||
// Рекурсивные gateways могут использовать те же IP, что и интерфейсы - это нормально
|
||||
const usedGatewayIps = new Set(config.gateways.map(g => g.ip).filter(Boolean));
|
||||
|
||||
// Создаем маппинг между ID из шаблона и реальными ID после создания
|
||||
const templateIdToRealId = new Map();
|
||||
@@ -691,9 +693,10 @@ function NetworkConfigManager() {
|
||||
|
||||
ip = ip.trim();
|
||||
|
||||
// Если IP уже используется, пропускаем
|
||||
if (usedIps.has(ip)) {
|
||||
notify.warning(`IP ${ip} уже используется, пропущен`);
|
||||
// Проверяем конфликты только с другими gateways
|
||||
// Для рекурсивных gateways разрешено использовать IP, которые уже используются в интерфейсах
|
||||
if (usedGatewayIps.has(ip)) {
|
||||
notify.warning(`IP ${ip} уже используется в другом gateway, пропущен`);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -719,7 +722,8 @@ function NetworkConfigManager() {
|
||||
};
|
||||
|
||||
newGateways.push(newGateway);
|
||||
usedIps.add(ip);
|
||||
// Добавляем IP в список использованных для проверки конфликтов внутри этой же операции создания
|
||||
usedGatewayIps.add(ip);
|
||||
});
|
||||
|
||||
if (newGateways.length === 0) {
|
||||
|
||||
Reference in New Issue
Block a user