fix reconnect
This commit is contained in:
parent
55316027c0
commit
74f9062a89
|
|
@ -146,18 +146,19 @@ export function renameTunnelConfig(oldName: string, newName: string) {
|
|||
saveConfig(config)
|
||||
}
|
||||
|
||||
function cancelReconnect(appName: string) {
|
||||
function cancelReconnect(appName: string, resetAttempts = true) {
|
||||
const timer = _reconnectTimers.get(appName)
|
||||
if (timer) {
|
||||
clearTimeout(timer)
|
||||
_reconnectTimers.delete(appName)
|
||||
}
|
||||
_reconnectAttempts.delete(appName)
|
||||
if (resetAttempts) _reconnectAttempts.delete(appName)
|
||||
}
|
||||
|
||||
function openTunnel(appName: string, port: number, subdomain?: string) {
|
||||
function openTunnel(appName: string, port: number, subdomain?: string, isReconnect = false) {
|
||||
// Cancel any pending reconnect timer to prevent duplicate loops
|
||||
cancelReconnect(appName)
|
||||
// but preserve attempts counter during reconnection so backoff works
|
||||
cancelReconnect(appName, !isReconnect)
|
||||
|
||||
// Close existing tunnel if any
|
||||
const existing = _tunnels.get(appName)
|
||||
|
|
@ -232,7 +233,7 @@ function openTunnel(appName: string, port: number, subdomain?: string) {
|
|||
const config = loadConfig()
|
||||
if (!config[appName]) return
|
||||
hostLog(`Tunnel reconnecting: ${appName}`)
|
||||
openTunnel(appName, port, config[appName]?.subdomain)
|
||||
openTunnel(appName, port, config[appName]?.subdomain, true)
|
||||
}, delay)
|
||||
|
||||
_reconnectTimers.set(appName, timer)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user