Skip to content

Commit ed69cf9

Browse files
authored
fix(NODE-6803): kms proxy socket creates unhandled rejection (#4444)
1 parent 3cc3a6b commit ed69cf9

File tree

1 file changed

+16
-11
lines changed

1 file changed

+16
-11
lines changed

src/client-side-encryption/state_machine.ts

+16-11
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@ export class StateMachine {
352352
const message = request.message;
353353
const buffer = new BufferPool();
354354

355-
const netSocket: net.Socket = new net.Socket();
355+
let netSocket: net.Socket;
356356
let socket: tls.TLSSocket;
357357

358358
function destroySockets() {
@@ -388,26 +388,31 @@ export class StateMachine {
388388
}
389389
}
390390

391-
const {
392-
promise: willConnect,
393-
reject: rejectOnNetSocketError,
394-
resolve: resolveOnNetSocketConnect
395-
} = promiseWithResolvers<void>();
396-
netSocket
397-
.once('error', err => rejectOnNetSocketError(onerror(err)))
398-
.once('close', () => rejectOnNetSocketError(onclose()))
399-
.once('connect', () => resolveOnNetSocketConnect());
400-
401391
let abortListener;
402392

403393
try {
404394
if (this.options.proxyOptions && this.options.proxyOptions.proxyHost) {
395+
netSocket = new net.Socket();
396+
397+
const {
398+
promise: willConnect,
399+
reject: rejectOnNetSocketError,
400+
resolve: resolveOnNetSocketConnect
401+
} = promiseWithResolvers<void>();
402+
403+
netSocket
404+
.once('error', err => rejectOnNetSocketError(onerror(err)))
405+
.once('close', () => rejectOnNetSocketError(onclose()))
406+
.once('connect', () => resolveOnNetSocketConnect());
407+
405408
const netSocketOptions = {
406409
...socketOptions,
407410
host: this.options.proxyOptions.proxyHost,
408411
port: this.options.proxyOptions.proxyPort || 1080
409412
};
413+
410414
netSocket.connect(netSocketOptions);
415+
411416
await willConnect;
412417

413418
try {

0 commit comments

Comments
 (0)