http2: emit timeout on compat request and response
Fixes: https://github.com/nodejs/node/issues/20079 PR-URL: https://github.com/nodejs/node/pull/22252 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
This commit is contained in:
parent
755520c4c3
commit
32902d09b4
@ -241,6 +241,13 @@ function onStreamCloseRequest() {
|
||||
req.emit('close');
|
||||
}
|
||||
|
||||
function onStreamTimeout(kind) {
|
||||
return function onStreamTimeout() {
|
||||
const obj = this[kind];
|
||||
obj.emit('timeout');
|
||||
};
|
||||
}
|
||||
|
||||
class Http2ServerRequest extends Readable {
|
||||
constructor(stream, headers, options, rawHeaders) {
|
||||
super(options);
|
||||
@ -263,6 +270,7 @@ class Http2ServerRequest extends Readable {
|
||||
stream.on('error', onStreamError);
|
||||
stream.on('aborted', onStreamAbortedRequest);
|
||||
stream.on('close', onStreamCloseRequest);
|
||||
stream.on('timeout', onStreamTimeout(kRequest));
|
||||
this.on('pause', onRequestPause);
|
||||
this.on('resume', onRequestResume);
|
||||
}
|
||||
@ -416,6 +424,7 @@ class Http2ServerResponse extends Stream {
|
||||
stream.on('aborted', onStreamAbortedResponse);
|
||||
stream.on('close', onStreamCloseResponse);
|
||||
stream.on('wantTrailers', onStreamTrailersReady);
|
||||
stream.on('timeout', onStreamTimeout(kResponse));
|
||||
}
|
||||
|
||||
// User land modules such as finalhandler just check truthiness of this
|
||||
|
@ -12,6 +12,7 @@ server.on('request', (req, res) => {
|
||||
req.setTimeout(msecs, common.mustCall(() => {
|
||||
res.end();
|
||||
}));
|
||||
req.on('timeout', common.mustCall());
|
||||
res.on('finish', common.mustCall(() => {
|
||||
req.setTimeout(msecs, common.mustNotCall());
|
||||
process.nextTick(() => {
|
||||
|
@ -12,6 +12,7 @@ server.on('request', (req, res) => {
|
||||
res.setTimeout(msecs, common.mustCall(() => {
|
||||
res.end();
|
||||
}));
|
||||
res.on('timeout', common.mustCall());
|
||||
res.on('finish', common.mustCall(() => {
|
||||
res.setTimeout(msecs, common.mustNotCall());
|
||||
process.nextTick(() => {
|
||||
|
Loading…
x
Reference in New Issue
Block a user