mirror of
https://github.com/nodejs/node.git
synced 2025-08-16 06:08:50 +02:00
http: reset headers timeout on headers complete
headers timeout should not occur *after* headers have been received. Fixes: https://github.com/nodejs/node/issues/34576 PR-URL: https://github.com/nodejs/node/pull/34578 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Pranshu Srivastava <rexagod@gmail.com>
This commit is contained in:
parent
73d713b16e
commit
da4d8de9d0
2 changed files with 47 additions and 0 deletions
46
test/parallel/test-http-parser-timeout-reset.js
Normal file
46
test/parallel/test-http-parser-timeout-reset.js
Normal file
|
@ -0,0 +1,46 @@
|
|||
'use strict';
|
||||
const common = require('../common');
|
||||
|
||||
const net = require('net');
|
||||
const { HTTPParser } = process.binding('http_parser');
|
||||
|
||||
const server = net.createServer((socket) => {
|
||||
socket.write('HTTP/1.1 200 OK\r\n');
|
||||
socket.write('Transfer-Encoding: chunked\r\n\r\n');
|
||||
setTimeout(() => {
|
||||
socket.write('1\r\n');
|
||||
socket.write('\n\r\n');
|
||||
setTimeout(() => {
|
||||
socket.write('1\r\n');
|
||||
socket.write('\n\r\n');
|
||||
setImmediate(() => {
|
||||
socket.destroy();
|
||||
server.close();
|
||||
});
|
||||
}, 500);
|
||||
}, 500);
|
||||
}).listen(0, () => {
|
||||
const socket = net.connect(server.address().port);
|
||||
const parser = new HTTPParser(HTTPParser.RESPONSE, false);
|
||||
parser.initialize(
|
||||
HTTPParser.RESPONSE,
|
||||
{},
|
||||
0,
|
||||
false,
|
||||
1e3
|
||||
);
|
||||
|
||||
parser[HTTPParser.kOnTimeout] = common.mustNotCall();
|
||||
|
||||
parser[HTTPParser.kOnHeaders] = common.mustNotCall();
|
||||
|
||||
parser[HTTPParser.kOnExecute] = common.mustCall(3);
|
||||
|
||||
parser[HTTPParser.kOnHeadersComplete] = common.mustCall();
|
||||
|
||||
parser[HTTPParser.kOnBody] = common.mustCall(2);
|
||||
|
||||
parser[HTTPParser.kOnMessageComplete] = common.mustNotCall();
|
||||
|
||||
parser.consume(socket._handle);
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue