http2: make res.req a normal property

The change in https://github.com/nodejs/node/pull/36505 broke
userland code that already wrote to res.req. This commit updates
the res.req property in the http2 compat layer to be a normal
property.

PR-URL: https://github.com/nodejs/node/pull/37706
Fixes: https://github.com/nodejs/node/issues/37705
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Robert Nagy <ronagy@icloud.com>
Reviewed-By: Mary Marchini <oss@mmarchini.me>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
This commit is contained in:
cjihrig committed 2021-03-13 12:44:40 -05:00
1 parent ef459d86ee
commit 9f119a3581
2 files changed
+4 -4

No files matched your search

+1 -4
View File
@@ -480,6 +480,7 @@ class Http2ServerResponse extends Stream {
stream[kProxySocket] = null;
stream[kResponse] = this;
this.writable = true;
this.req = stream[kRequest];
stream.on('drain', onStreamDrain);
stream.on('aborted', onStreamAbortedResponse);
stream.on('close', onStreamCloseResponse);
@@ -529,10 +530,6 @@ class Http2ServerResponse extends Stream {
return this[kStream].headersSent;
}
get req() {
return this[kStream][kRequest];
}
get sendDate() {
return this[kState].sendDate;
}
@@ -14,6 +14,9 @@ server.listen(0, common.mustCall(function() {
server.once('request', common.mustCall(function(request, response) {
assert.strictEqual(response.req, request);
// Verify that writing to response.req is allowed.
response.req = null;
response.on('finish', common.mustCall(function() {
process.nextTick(() => {
server.close();