Apply suggestions from code review

Co-authored-by: anatawa12 <anatawa12@icloud.com>
This commit is contained in:
rectcoordsystem 2024-11-13 03:06:22 +09:00 committed by Julia Johannesen
parent 7ccccf5545
commit 663c06be00
No known key found for this signature in database
GPG Key ID: 4A1377AF3E7FBC46

View File

@ -26,30 +26,33 @@ export type HttpRequestSendOptions = {
validators?: ((res: Response) => void)[]; validators?: ((res: Response) => void)[];
}; };
@Injectable() declare module 'node:http' {
interface Agent {
createConnection(options: net.NetConnectOpts, callback?: (err: unknown, stream: net.Socket) => void): net.Socket;
}
}
class HttpRequestServiceAgent extends http.Agent { class HttpRequestServiceAgent extends http.Agent {
constructor( constructor(
@Inject(DI.config)
private config: Config, private config: Config,
options?: http.AgentOptions,
options?: Object
) { ) {
super(options); super(options);
} }
@bindThis @bindThis
public createConnection(options: Object, callback?: Function): net.Socket { public createConnection(options: net.NetConnectOpts, callback?: (err: unknown, stream: net.Socket) => void): net.Socket {
const socket = super.createConnection(options, callback) const socket = super.createConnection(options, callback)
.on('connect', ()=>{ .on('connect', () => {
const address = socket.remoteAddress; const address = socket.remoteAddress;
if (process.env.NODE_ENV === 'production') { if (process.env.NODE_ENV === 'production') {
if (address && ipaddr.isValid(address)) { if (address && ipaddr.isValid(address)) {
if (this.isPrivateIp(address)) { if (this.isPrivateIp(address)) {
socket.destroy(new Error(`Blocked address: ${address}`)); socket.destroy(new Error(`Blocked address: ${address}`));
}
} }
} }
} });
});
return socket; return socket;
}; };
@ -68,13 +71,10 @@ class HttpRequestServiceAgent extends http.Agent {
} }
} }
@Injectable()
class HttpsRequestServiceAgent extends https.Agent { class HttpsRequestServiceAgent extends https.Agent {
constructor( constructor(
@Inject(DI.config)
private config: Config, private config: Config,
options?: https.AgentOptions,
options?: Object
) { ) {
super(options); super(options);
} }