Skip to content

Commit d3b0e04

Browse files
destroy existing socket
1 parent 50e138e commit d3b0e04

File tree

1 file changed

+12
-17
lines changed

1 file changed

+12
-17
lines changed

src/mongoPatch.ts

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ interface Config {
1616
export function useProxyForMongo(config: Config) {
1717
let sockets: tls.TLSSocket[] = [];
1818
socks.SocksClient.createConnection = async (options, callback) => {
19+
options.existing_socket?.destroy();
1920
const socket = await new HttpsProxySocket(`https://${config.proxy}`, { auth: config.auth }).connect({
2021
host: options.destination.host,
2122
port: options.destination.port,
@@ -31,23 +32,17 @@ export function useProxyForMongo(config: Config) {
3132
};
3233
return {
3334
close: async () => {
34-
// await Promise.all(
35-
// sockets.map(
36-
// (socket) =>
37-
// new Promise<void>((resolve) => {
38-
// socket.once('close', () => {
39-
// console.log(
40-
// `Socket state: destroyed=${socket.destroyed}, readable=${socket.readable}, writable=${socket.writable}, closed=${socket.closed}`,
41-
// );
42-
// resolve();
43-
// });
44-
// socket.destroySoon();
45-
// }),
46-
// ),
47-
// );
48-
for (const socket of sockets) {
49-
socket.destroySoon();
50-
}
35+
await Promise.all(
36+
sockets.map(
37+
(socket) =>
38+
new Promise<void>((resolve) => {
39+
socket.once('close', () => {
40+
resolve();
41+
});
42+
socket.destroySoon();
43+
}),
44+
),
45+
);
5146
sockets = [];
5247
},
5348
};

0 commit comments

Comments
 (0)