fix: handle socket creation failure in HttpRequestServiceAgent
This commit is contained in:
parent
c41cb27424
commit
a4e3d631f3
|
@ -37,17 +37,23 @@ class HttpRequestServiceAgent extends http.Agent {
|
||||||
|
|
||||||
@bindThis
|
@bindThis
|
||||||
public createConnection(options: http.ClientRequestArgs, callback?: (err: Error | null, stream: stream.Duplex) => void): stream.Duplex {
|
public createConnection(options: http.ClientRequestArgs, callback?: (err: Error | null, stream: stream.Duplex) => void): stream.Duplex {
|
||||||
const socket = super.createConnection(options, callback)
|
const socket = super.createConnection(options, callback);
|
||||||
.on('connect', () => {
|
|
||||||
if (socket instanceof net.Socket && process.env.NODE_ENV === 'production') {
|
if (socket == null) {
|
||||||
const address = socket.remoteAddress;
|
throw new Error('Failed to create socket');
|
||||||
if (address && ipaddr.isValid(address)) {
|
}
|
||||||
if (this.isPrivateIp(address)) {
|
|
||||||
socket.destroy(new Error(`Blocked address: ${address}`));
|
socket.on('connect', () => {
|
||||||
}
|
if (socket instanceof net.Socket && process.env.NODE_ENV === 'production') {
|
||||||
|
const address = socket.remoteAddress;
|
||||||
|
if (address && ipaddr.isValid(address)) {
|
||||||
|
if (this.isPrivateIp(address)) {
|
||||||
|
socket.destroy(new Error(`Blocked address: ${address}`));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return socket;
|
return socket;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,17 +82,23 @@ class HttpsRequestServiceAgent extends https.Agent {
|
||||||
|
|
||||||
@bindThis
|
@bindThis
|
||||||
public createConnection(options: http.ClientRequestArgs, callback?: (err: Error | null, stream: stream.Duplex) => void): stream.Duplex {
|
public createConnection(options: http.ClientRequestArgs, callback?: (err: Error | null, stream: stream.Duplex) => void): stream.Duplex {
|
||||||
const socket = super.createConnection(options, callback)
|
const socket = super.createConnection(options, callback);
|
||||||
.on('connect', () => {
|
|
||||||
if (socket instanceof net.Socket && process.env.NODE_ENV === 'production') {
|
if (socket == null) {
|
||||||
const address = socket.remoteAddress;
|
throw new Error('Failed to create socket');
|
||||||
if (address && ipaddr.isValid(address)) {
|
}
|
||||||
if (this.isPrivateIp(address)) {
|
|
||||||
socket.destroy(new Error(`Blocked address: ${address}`));
|
socket.on('connect', () => {
|
||||||
}
|
if (socket instanceof net.Socket && process.env.NODE_ENV === 'production') {
|
||||||
|
const address = socket.remoteAddress;
|
||||||
|
if (address && ipaddr.isValid(address)) {
|
||||||
|
if (this.isPrivateIp(address)) {
|
||||||
|
socket.destroy(new Error(`Blocked address: ${address}`));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return socket;
|
return socket;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue