Remove the close listener when a rejected upload ends

A connection kept open for more requests got one more close listener
for every rejected upload that finished within the grace period.
This commit is contained in:
Danielv123 committed 2026-11-01 17:46:24 +01:00
1 parent 06dcf70514
commit ff9080a766
1 file changed
+7 -2
+7 -2
View File
@@ -366,8 +366,13 @@ function rejectUpload(req: Request, res: Response, status: number) {
}
const socket = req.socket;
const timeout = setTimeout(() => socket.destroy(), rejectedUploadDrainMs);
req.once("end", () => clearTimeout(timeout));
socket.once("close", () => clearTimeout(timeout));
const onClose = () => clearTimeout(timeout);
socket.once("close", onClose);
// The connection may be kept open for more requests, so don't leave a listener on it
req.once("end", () => {
clearTimeout(timeout);
socket.off("close", onClose);
});
}
async function putStream(req: Request<{ id: string }>, res: Response) {