fix(network): исправить keepalive GRE и каталог IPsec

This commit is contained in:
Denozordec committed 2026-10-13 21:15:49 +07:00
1 parent 3f3f06f147
commit 727e35f985
28 files changed
+1722 -37

No files matched your search

+7 -3
View File
@@ -357,6 +357,10 @@ function GrePageContent({ selectedServerId, selectedTunnelId, allTunnelsHref, on
setFormError("Для IPsec нужен PSK не короче 8 символов")
return
}
if (![tForm.keepaliveInterval, tForm.keepaliveRetries].every(value => Number.isInteger(value) && value >= 1 && value <= 4294967295)) {
setFormError("Keepalive и число попыток: целые значения от 1 до 4294967295. Ноль не поддерживается этим API.")
return
}
if (!beginOperation(tForm.serverId)) { setFormError("Устройство не готово к изменению GRE; повторите опрос"); return }
formLock.current = true
try {
@@ -885,11 +889,11 @@ function GrePageContent({ selectedServerId, selectedTunnelId, allTunnelsHref, on
<FormField label="MTU" hint="По умолч. 1476">
<Input aria-label="MTU" type="number" className="font-mono" value={tForm.mtu} onChange={(e) => setT("mtu", Number(e.target.value))} />
</FormField>
<FormField label="Keepalive, с" hint="0 = откл.">
<Input aria-label="Keepalive, с" type="number" className="font-mono" value={tForm.keepaliveInterval} onChange={(e) => setT("keepaliveInterval", Number(e.target.value))} />
<FormField label="Keepalive, с" hint="Целое число, минимум 1 с">
<Input aria-label="Keepalive, с" type="number" min={1} max={4294967295} step={1} className="font-mono" value={tForm.keepaliveInterval} onChange={(e) => setT("keepaliveInterval", Number(e.target.value))} />
</FormField>
<FormField label="Попытки">
<Input aria-label="Попытки" type="number" className="font-mono" value={tForm.keepaliveRetries} onChange={(e) => setT("keepaliveRetries", Number(e.target.value))} />
<Input aria-label="Попытки" type="number" min={1} max={4294967295} step={1} className="font-mono" value={tForm.keepaliveRetries} onChange={(e) => setT("keepaliveRetries", Number(e.target.value))} />
</FormField>
</div>
<FormField label="DSCP">
+2 -2
View File
@@ -125,7 +125,7 @@ interface ApiGreTunnelRow {
localInnerIp: string
remoteInnerIp: string
poolId: string
ipsec: null
ipsec: { secret: "" } | null
mtu: number
keepaliveInterval: number
keepaliveRetries: number
@@ -147,7 +147,7 @@ function apiGreToGreTunnel(t: ApiGreTunnelRow): GreTunnel {
localInnerIp: t.localInnerIp,
remoteInnerIp: t.remoteInnerIp,
poolId: t.poolId || "live",
ipsec: null,
ipsec: t.ipsec,
mtu: t.mtu,
keepaliveInterval: t.keepaliveInterval,
keepaliveRetries: t.keepaliveRetries,