fix: handle socket creation failure in HttpRequestServiceAgent

This commit is contained in:
kakkokari-gtyih 2025-10-04 14:37:42 +09:00
parent c41cb27424
commit a4e3d631f3
1 changed files with 30 additions and 18 deletions

View File

@ -37,8 +37,13 @@ class HttpRequestServiceAgent extends http.Agent {
@bindThis
public createConnection(options: http.ClientRequestArgs, callback?: (err: Error | null, stream: stream.Duplex) => void): stream.Duplex {
const socket = super.createConnection(options, callback)
.on('connect', () => {
const socket = super.createConnection(options, callback);
if (socket == null) {
throw new Error('Failed to create socket');
}
socket.on('connect', () => {
if (socket instanceof net.Socket && process.env.NODE_ENV === 'production') {
const address = socket.remoteAddress;
if (address && ipaddr.isValid(address)) {
@ -48,6 +53,7 @@ class HttpRequestServiceAgent extends http.Agent {
}
}
});
return socket;
}
@ -76,8 +82,13 @@ class HttpsRequestServiceAgent extends https.Agent {
@bindThis
public createConnection(options: http.ClientRequestArgs, callback?: (err: Error | null, stream: stream.Duplex) => void): stream.Duplex {
const socket = super.createConnection(options, callback)
.on('connect', () => {
const socket = super.createConnection(options, callback);
if (socket == null) {
throw new Error('Failed to create socket');
}
socket.on('connect', () => {
if (socket instanceof net.Socket && process.env.NODE_ENV === 'production') {
const address = socket.remoteAddress;
if (address && ipaddr.isValid(address)) {
@ -87,6 +98,7 @@ class HttpsRequestServiceAgent extends https.Agent {
}
}
});
return socket;
}