diff --git a/src/vs/workbench/api/node/extHostTunnelService.ts b/src/vs/workbench/api/node/extHostTunnelService.ts index 5295a279a0d..ef2679b4f9d 100644 --- a/src/vs/workbench/api/node/extHostTunnelService.ts +++ b/src/vs/workbench/api/node/extHostTunnelService.ts @@ -183,7 +183,7 @@ export class ExtHostTunnelService extends Disposable implements IExtHostTunnelSe ip: this.parseIpAddress(address[0]), port: parseInt(address[1], 16) }; - }).map(port => [port.port, port]) + }).map(port => [port.ip + ':' + port.port, port]) ).values() ]; } diff --git a/src/vs/workbench/services/remote/common/remoteExplorerService.ts b/src/vs/workbench/services/remote/common/remoteExplorerService.ts index 44b8f8815bd..cfc38fbed3b 100644 --- a/src/vs/workbench/services/remote/common/remoteExplorerService.ts +++ b/src/vs/workbench/services/remote/common/remoteExplorerService.ts @@ -46,7 +46,7 @@ export interface Tunnel { } export function MakeAddress(host: string, port: number): string { - if (host = '127.0.0.1') { + if (host === '127.0.0.1') { host = 'localhost'; } return host + ':' + port; diff --git a/src/vs/workbench/services/remote/node/tunnelService.ts b/src/vs/workbench/services/remote/node/tunnelService.ts index 66e50c7e997..2c9fd294251 100644 --- a/src/vs/workbench/services/remote/node/tunnelService.ts +++ b/src/vs/workbench/services/remote/node/tunnelService.ts @@ -19,8 +19,8 @@ import { ILogService } from 'vs/platform/log/common/log'; import { findFreePort } from 'vs/base/node/ports'; import { Event, Emitter } from 'vs/base/common/event'; -export async function createRemoteTunnel(options: IConnectionOptions, tunnelRemotePort: number, tunnelLocalPort?: number): Promise { - const tunnel = new NodeRemoteTunnel(options, tunnelRemotePort, tunnelLocalPort); +export async function createRemoteTunnel(options: IConnectionOptions, tunnelRemoteHost: string, tunnelRemotePort: number, tunnelLocalPort?: number): Promise { + const tunnel = new NodeRemoteTunnel(options, tunnelRemoteHost, tunnelRemotePort, tunnelLocalPort); return tunnel.waitForReady(); } @@ -28,7 +28,7 @@ class NodeRemoteTunnel extends Disposable implements RemoteTunnel { public readonly tunnelRemotePort: number; public tunnelLocalPort!: number; - public tunnelRemoteHost: string = 'localhost'; + public tunnelRemoteHost: string; public localAddress!: string; private readonly _options: IConnectionOptions; @@ -38,7 +38,7 @@ class NodeRemoteTunnel extends Disposable implements RemoteTunnel { private readonly _listeningListener: () => void; private readonly _connectionListener: (socket: net.Socket) => void; - constructor(options: IConnectionOptions, tunnelRemotePort: number, private readonly suggestedLocalPort?: number) { + constructor(options: IConnectionOptions, tunnelRemoteHost: string, tunnelRemotePort: number, private readonly suggestedLocalPort?: number) { super(); this._options = options; this._server = net.createServer(); @@ -51,7 +51,7 @@ class NodeRemoteTunnel extends Disposable implements RemoteTunnel { this._server.on('connection', this._connectionListener); this.tunnelRemotePort = tunnelRemotePort; - + this.tunnelRemoteHost = tunnelRemoteHost; } public dispose(): void { @@ -229,7 +229,7 @@ export class TunnelService implements ITunnelService { this.addTunnelToMap(remoteHost, remotePort, tunnel); } return tunnel; - } else if (remoteHost === 'localhost') { + } else { const options: IConnectionOptions = { commit: product.commit, socketFactory: nodeSocketFactory, @@ -243,11 +243,10 @@ export class TunnelService implements ITunnelService { logService: this.logService }; - const tunnel = createRemoteTunnel(options, remotePort, localPort); + const tunnel = createRemoteTunnel(options, remoteHost, remotePort, localPort); this.addTunnelToMap(remoteHost, remotePort, tunnel); return tunnel; } - return undefined; } }