mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
http: suppress data event if req aborted
Re-enable test-http-abort-stream-end and put it into parallel category. Use system random port when calling server.listen() and fix eslint errors. After calling request.abort(), in order to avoid the buffered data to trigger the 'data' event, explicitly remove 'data' event listeners. PR-URL: https://github.com/nodejs/node/pull/13260 Reviewed-By: Brian White <mscdex@mscdex.net> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
This commit is contained in:
parent
fd54b10500
commit
716e9e07fd
@ -314,6 +314,9 @@ function _addHeaderLine(field, value, dest) {
|
||||
IncomingMessage.prototype._dump = function _dump() {
|
||||
if (!this._dumped) {
|
||||
this._dumped = true;
|
||||
// If there is buffered data, it may trigger 'data' events.
|
||||
// Remove 'data' event listeners explicitly.
|
||||
this.removeAllListeners('data');
|
||||
this.resume();
|
||||
}
|
||||
};
|
||||
|
@ -20,27 +20,27 @@
|
||||
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
'use strict';
|
||||
const common = require('../common');
|
||||
require('../common');
|
||||
const assert = require('assert');
|
||||
|
||||
const http = require('http');
|
||||
|
||||
var maxSize = 1024;
|
||||
var size = 0;
|
||||
const maxSize = 1024;
|
||||
let size = 0;
|
||||
|
||||
var s = http.createServer(function(req, res) {
|
||||
const s = http.createServer(function(req, res) {
|
||||
this.close();
|
||||
|
||||
res.writeHead(200, {'Content-Type': 'text/plain'});
|
||||
for (var i = 0; i < maxSize; i++) {
|
||||
for (let i = 0; i < maxSize; i++) {
|
||||
res.write('x' + i);
|
||||
}
|
||||
res.end();
|
||||
});
|
||||
|
||||
var aborted = false;
|
||||
s.listen(common.PORT, function() {
|
||||
var req = http.get('http://localhost:' + common.PORT, function(res) {
|
||||
let aborted = false;
|
||||
s.listen(0, function() {
|
||||
const req = http.get('http://localhost:' + s.address().port, function(res) {
|
||||
res.on('data', function(chunk) {
|
||||
size += chunk.length;
|
||||
assert(!aborted, 'got data after abort');
|
||||
@ -51,8 +51,6 @@ s.listen(common.PORT, function() {
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
req.end();
|
||||
});
|
||||
|
||||
process.on('exit', function() {
|
Loading…
Reference in New Issue
Block a user