Skip to content

Commit c48885a

Browse files
committed
fixup
1 parent 8cd9b3d commit c48885a

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

lib/_http_server.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -665,9 +665,12 @@ function clearIncoming(req) {
665665
if (parser && parser.incoming === req) {
666666
if (req.readableEnded) {
667667
parser.incoming = null;
668+
req.emit('close');
668669
} else {
669670
req.on('end', clearIncoming);
670671
}
672+
} else {
673+
req.emit('close');
671674
}
672675
}
673676

@@ -678,7 +681,6 @@ function resOnFinish(req, res, socket, state, server) {
678681
assert(state.incoming.length === 0 || state.incoming[0] === req);
679682

680683
state.incoming.shift();
681-
clearIncoming(req);
682684

683685
// If the user never called req.read(), and didn't pipe() or
684686
// .resume() or .on('data'), then we call req._dump() so that the
@@ -687,9 +689,7 @@ function resOnFinish(req, res, socket, state, server) {
687689
req._dump();
688690

689691
res.detachSocket(socket);
690-
// TODO(ronag): streamify IncomingMessage.destroy()
691-
req._readableState.destroyed = true;
692-
req.emit('close');
692+
clearIncoming(req);
693693
process.nextTick(emitCloseNT, res);
694694

695695
if (res._last) {

test/parallel/test-http-no-read-no-dump.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
'use strict';
22
const common = require('../common');
33
const http = require('http');
4+
const assert = require('assert');
45

56
let onPause = null;
67

@@ -11,6 +12,14 @@ const server = http.createServer((req, res) => {
1112
res.writeHead(200);
1213
res.flushHeaders();
1314

15+
let closed = false;
16+
req.on('close', common.mustCall(() => {
17+
closed = true;
18+
}));
19+
req.on('end', common.mustCall(() => {
20+
assert.strictEqual(closed, false);
21+
}));
22+
1423
req.connection.on('pause', () => {
1524
res.end();
1625
onPause();

0 commit comments

Comments
 (0)