From ff7229b98c1a280b7bbc4c06795fdf255258a974 Mon Sep 17 00:00:00 2001 From: Liu Weifeng Date: Wed, 24 Aug 2022 15:38:56 +0800 Subject: [PATCH] fix: close socket when client error handled --- packages/vite/src/node/http.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/vite/src/node/http.ts b/packages/vite/src/node/http.ts index 3317814252018b..86fa792072cc2e 100644 --- a/packages/vite/src/node/http.ts +++ b/packages/vite/src/node/http.ts @@ -190,7 +190,9 @@ export function setClientErrorHandler( logger: Logger ): void { server.on('clientError', (err, socket) => { + let msg = '400 Bad Request' if ((err as any).code === 'HPE_HEADER_OVERFLOW') { + msg = '431 Request Header Fields Too Large' logger.warn( colors.yellow( 'Server responded with status code 431. ' + @@ -198,5 +200,9 @@ export function setClientErrorHandler( ) ) } + if ((err as any).code === 'ECONNRESET' || !socket.writable) { + return + } + socket.end(`HTTP/1.1 ${msg}\r\n\r\n`) }) }