From 5dae1feca89b528c5eefbdbcba88cf4fc1ac0974 Mon Sep 17 00:00:00 2001 From: LukeGus Date: Sun, 2 Nov 2025 16:14:31 -0600 Subject: [PATCH] fix: Tunnels being same name --- src/backend/ssh/tunnel.ts | 6 +++++- src/ui/desktop/apps/tunnel/Tunnel.tsx | 4 +++- src/ui/desktop/apps/tunnel/TunnelObject.tsx | 12 +++++++++--- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/backend/ssh/tunnel.ts b/src/backend/ssh/tunnel.ts index d46a11d4..6262af86 100644 --- a/src/backend/ssh/tunnel.ts +++ b/src/backend/ssh/tunnel.ts @@ -1409,7 +1409,11 @@ async function initializeAutoStartTunnels(): Promise { if (endpointHost) { const tunnelConfig: TunnelConfig = { - name: `${host.name || `${host.username}@${host.ip}`}_${tunnelConnection.sourcePort}_${tunnelConnection.endpointPort}`, + name: `${host.name || `${host.username}@${host.ip}`}_${ + tunnelConnection.sourcePort + }_${tunnelConnection.endpointHost}_${ + tunnelConnection.endpointPort + }`, hostName: host.name || `${host.username}@${host.ip}`, sourceIP: host.ip, sourceSSHPort: host.port, diff --git a/src/ui/desktop/apps/tunnel/Tunnel.tsx b/src/ui/desktop/apps/tunnel/Tunnel.tsx index 4ee2a6f1..333cd81e 100644 --- a/src/ui/desktop/apps/tunnel/Tunnel.tsx +++ b/src/ui/desktop/apps/tunnel/Tunnel.tsx @@ -126,7 +126,9 @@ export function Tunnel({ filterHostKey }: SSHTunnelProps): React.ReactElement { tunnelIndex: number, ) => { const tunnel = host.tunnelConnections[tunnelIndex]; - const tunnelName = `${host.name || `${host.username}@${host.ip}`}_${tunnel.sourcePort}_${tunnel.endpointPort}`; + const tunnelName = `${host.name || `${host.username}@${host.ip}`}_${ + tunnel.sourcePort + }_${tunnel.endpointHost}_${tunnel.endpointPort}`; setTunnelActions((prev) => ({ ...prev, [tunnelName]: true })); diff --git a/src/ui/desktop/apps/tunnel/TunnelObject.tsx b/src/ui/desktop/apps/tunnel/TunnelObject.tsx index 350b4279..2c1afdf1 100644 --- a/src/ui/desktop/apps/tunnel/TunnelObject.tsx +++ b/src/ui/desktop/apps/tunnel/TunnelObject.tsx @@ -34,7 +34,9 @@ export function TunnelObject({ const getTunnelStatus = (tunnelIndex: number): TunnelStatus | undefined => { const tunnel = host.tunnelConnections[tunnelIndex]; - const tunnelName = `${host.name || `${host.username}@${host.ip}`}_${tunnel.sourcePort}_${tunnel.endpointPort}`; + const tunnelName = `${host.name || `${host.username}@${host.ip}`}_${ + tunnel.sourcePort + }_${tunnel.endpointHost}_${tunnel.endpointPort}`; return tunnelStatuses[tunnelName]; }; @@ -119,7 +121,9 @@ export function TunnelObject({ {host.tunnelConnections.map((tunnel, tunnelIndex) => { const status = getTunnelStatus(tunnelIndex); const statusDisplay = getTunnelStatusDisplay(status); - const tunnelName = `${host.name || `${host.username}@${host.ip}`}_${tunnel.sourcePort}_${tunnel.endpointPort}`; + const tunnelName = `${host.name || `${host.username}@${host.ip}`}_${ + tunnel.sourcePort + }_${tunnel.endpointHost}_${tunnel.endpointPort}`; const isActionLoading = tunnelActions[tunnelName]; const statusValue = status?.status?.toUpperCase() || "DISCONNECTED"; @@ -352,7 +356,9 @@ export function TunnelObject({ {host.tunnelConnections.map((tunnel, tunnelIndex) => { const status = getTunnelStatus(tunnelIndex); const statusDisplay = getTunnelStatusDisplay(status); - const tunnelName = `${host.name || `${host.username}@${host.ip}`}_${tunnel.sourcePort}_${tunnel.endpointPort}`; + const tunnelName = `${host.name || `${host.username}@${host.ip}`}_${ + tunnel.sourcePort + }_${tunnel.endpointHost}_${tunnel.endpointPort}`; const isActionLoading = tunnelActions[tunnelName]; const statusValue = status?.status?.toUpperCase() || "DISCONNECTED";