Add lookup fixtures are passed to createSocket
This commit is contained in:
parent
af1ccca8b1
commit
2fb3e50631
|
|
@ -139,10 +139,14 @@ class SocksProxyConnection {
|
|||
}
|
||||
|
||||
async connect() {
|
||||
const fixtures = {
|
||||
__testHookLookup: (this._options as any).__testHookLookup
|
||||
};
|
||||
|
||||
if (this.socksProxy.proxyAgentFromOptions)
|
||||
this.target = await this.socksProxy.proxyAgentFromOptions.callback(new EventEmitter() as any, { host: rewriteToLocalhostIfNeeded(this.host), port: this.port, secureEndpoint: false });
|
||||
else
|
||||
this.target = await createSocket(rewriteToLocalhostIfNeeded(this.host), this.port);
|
||||
this.target = await createSocket({ host: rewriteToLocalhostIfNeeded(this.host), port: this.port, ...fixtures });
|
||||
|
||||
this.target.once('close', this._targetCloseEventListener);
|
||||
this.target.once('error', error => this.socksProxy._socksProxy.sendSocketError({ uid: this.uid, error: error.message }));
|
||||
|
|
|
|||
|
|
@ -55,14 +55,14 @@ class HttpsHappyEyeballsAgent extends https.Agent {
|
|||
export const httpsHappyEyeballsAgent = new HttpsHappyEyeballsAgent({ keepAlive: true });
|
||||
export const httpHappyEyeballsAgent = new HttpHappyEyeballsAgent({ keepAlive: true });
|
||||
|
||||
export async function createSocket(host: string, port: number): Promise<net.Socket> {
|
||||
export async function createSocket(options: { host: string, port: number }): Promise<net.Socket> {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (net.isIP(host)) {
|
||||
const socket = net.createConnection({ host, port });
|
||||
if (net.isIP(options.host)) {
|
||||
const socket = net.createConnection(options);
|
||||
socket.on('connect', () => resolve(socket));
|
||||
socket.on('error', error => reject(error));
|
||||
} else {
|
||||
createConnectionAsync({ host, port }, (err, socket) => {
|
||||
createConnectionAsync(options, (err, socket) => {
|
||||
if (err)
|
||||
reject(err);
|
||||
if (socket)
|
||||
|
|
|
|||
|
|
@ -411,7 +411,7 @@ export class SocksProxy extends EventEmitter implements SocksConnectionClient {
|
|||
|
||||
private async _handleDirect(request: SocksSocketRequestedPayload) {
|
||||
try {
|
||||
const socket = await createSocket(request.host, request.port);
|
||||
const socket = await createSocket({ host: request.host, port: request.port });
|
||||
socket.on('data', data => this._connections.get(request.uid)?.sendData(data));
|
||||
socket.on('error', error => {
|
||||
this._connections.get(request.uid)?.error(error.message);
|
||||
|
|
@ -540,7 +540,7 @@ export class SocksProxyHandler extends EventEmitter {
|
|||
try {
|
||||
if (this._redirectPortForTest)
|
||||
port = this._redirectPortForTest;
|
||||
const socket = await createSocket(host, port);
|
||||
const socket = await createSocket({ host, port });
|
||||
socket.on('data', data => {
|
||||
const payload: SocksSocketDataPayload = { uid, data };
|
||||
this.emit(SocksProxyHandler.Events.SocksData, payload);
|
||||
|
|
|
|||
Loading…
Reference in a new issue