Skip to content

Commit 6624dbb

Browse files
committed
introduce RemoteAuthorities
1 parent 324da04 commit 6624dbb

3 files changed

Lines changed: 28 additions & 0 deletions

File tree

src/vs/base/common/network.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,26 @@ export namespace Schemas {
4949

5050
export const userData: string = 'vscode-userdata';
5151
}
52+
53+
class RemoteAuthoritiesImpl {
54+
private readonly _hosts: { [authority: string]: string; };
55+
private readonly _ports: { [authority: string]: number; };
56+
private readonly _connectionTokens: { [authority: string]: string; };
57+
58+
constructor() {
59+
this._hosts = Object.create(null);
60+
this._ports = Object.create(null);
61+
this._connectionTokens = Object.create(null);
62+
}
63+
64+
public set(authority: string, host: string, port: number): void {
65+
this._hosts[authority] = host;
66+
this._ports[authority] = port;
67+
}
68+
69+
public setConnectionToken(authority: string, connectionToken: string): void {
70+
this._connectionTokens[authority] = connectionToken;
71+
}
72+
}
73+
74+
export const RemoteAuthorities = new RemoteAuthoritiesImpl();

src/vs/platform/remote/electron-browser/remoteAuthorityResolverService.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import { ResolvedAuthority, IRemoteAuthorityResolverService, ResolverResult, ResolvedOptions } from 'vs/platform/remote/common/remoteAuthorityResolver';
77
import { ipcRenderer as ipc } from 'electron';
88
import * as errors from 'vs/base/common/errors';
9+
import { RemoteAuthorities } from 'vs/base/common/network';
910

1011
class PendingResolveAuthorityRequest {
1112
constructor(
@@ -50,6 +51,7 @@ export class RemoteAuthorityResolverService implements IRemoteAuthorityResolverS
5051
if (this._resolveAuthorityRequests[resolvedAuthority.authority]) {
5152
let request = this._resolveAuthorityRequests[resolvedAuthority.authority];
5253
ipc.send('vscode:remoteAuthorityResolved', resolvedAuthority);
54+
RemoteAuthorities.set(resolvedAuthority.authority, resolvedAuthority.host, resolvedAuthority.port);
5355
request.resolve({ authority: resolvedAuthority, options });
5456
}
5557
}

src/vs/workbench/services/remote/common/remoteAgentEnvironmentChannel.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { IChannel } from 'vs/base/parts/ipc/common/ipc';
99
import { IExtensionDescription } from 'vs/platform/extensions/common/extensions';
1010
import { IRemoteAgentEnvironment } from 'vs/platform/remote/common/remoteAgentEnvironment';
1111
import { IDiagnosticInfoOptions, IDiagnosticInfo } from 'vs/platform/diagnostics/common/diagnostics';
12+
import { RemoteAuthorities } from 'vs/base/common/network';
1213

1314
export interface IGetEnvironmentDataArguments {
1415
language: string;
@@ -44,6 +45,8 @@ export class RemoteExtensionEnvironmentChannelClient {
4445

4546
const data = await this.channel.call<IRemoteAgentEnvironmentDTO>('getEnvironmentData', args);
4647

48+
RemoteAuthorities.setConnectionToken(remoteAuthority, data.connectionToken);
49+
4750
return {
4851
pid: data.pid,
4952
connectionToken: data.connectionToken,

0 commit comments

Comments
 (0)