提交 6624dbbc 编写于 作者: A Alex Dima

introduce RemoteAuthorities

上级 324da04f
......@@ -49,3 +49,26 @@ export namespace Schemas {
export const userData: string = 'vscode-userdata';
}
class RemoteAuthoritiesImpl {
private readonly _hosts: { [authority: string]: string; };
private readonly _ports: { [authority: string]: number; };
private readonly _connectionTokens: { [authority: string]: string; };
constructor() {
this._hosts = Object.create(null);
this._ports = Object.create(null);
this._connectionTokens = Object.create(null);
}
public set(authority: string, host: string, port: number): void {
this._hosts[authority] = host;
this._ports[authority] = port;
}
public setConnectionToken(authority: string, connectionToken: string): void {
this._connectionTokens[authority] = connectionToken;
}
}
export const RemoteAuthorities = new RemoteAuthoritiesImpl();
......@@ -6,6 +6,7 @@
import { ResolvedAuthority, IRemoteAuthorityResolverService, ResolverResult, ResolvedOptions } from 'vs/platform/remote/common/remoteAuthorityResolver';
import { ipcRenderer as ipc } from 'electron';
import * as errors from 'vs/base/common/errors';
import { RemoteAuthorities } from 'vs/base/common/network';
class PendingResolveAuthorityRequest {
constructor(
......@@ -50,6 +51,7 @@ export class RemoteAuthorityResolverService implements IRemoteAuthorityResolverS
if (this._resolveAuthorityRequests[resolvedAuthority.authority]) {
let request = this._resolveAuthorityRequests[resolvedAuthority.authority];
ipc.send('vscode:remoteAuthorityResolved', resolvedAuthority);
RemoteAuthorities.set(resolvedAuthority.authority, resolvedAuthority.host, resolvedAuthority.port);
request.resolve({ authority: resolvedAuthority, options });
}
}
......
......@@ -9,6 +9,7 @@ import { IChannel } from 'vs/base/parts/ipc/common/ipc';
import { IExtensionDescription } from 'vs/platform/extensions/common/extensions';
import { IRemoteAgentEnvironment } from 'vs/platform/remote/common/remoteAgentEnvironment';
import { IDiagnosticInfoOptions, IDiagnosticInfo } from 'vs/platform/diagnostics/common/diagnostics';
import { RemoteAuthorities } from 'vs/base/common/network';
export interface IGetEnvironmentDataArguments {
language: string;
......@@ -44,6 +45,8 @@ export class RemoteExtensionEnvironmentChannelClient {
const data = await this.channel.call<IRemoteAgentEnvironmentDTO>('getEnvironmentData', args);
RemoteAuthorities.setConnectionToken(remoteAuthority, data.connectionToken);
return {
pid: data.pid,
connectionToken: data.connectionToken,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册