summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/http.js10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/http.js b/lib/http.js
index 61204cad4..83d0c556c 100644
--- a/lib/http.js
+++ b/lib/http.js
@@ -125,7 +125,10 @@ function parserOnMessageComplete() {
if (!parser.incoming.upgrade) {
// For upgraded connections, also emit this after parser.execute
parser.incoming.readable = false;
- parser.incoming.emit('end');
+ if (!parser.incoming._ended) {
+ parser.incoming._ended = true;
+ parser.incoming.emit('end');
+ }
}
if (parser.socket.readable) {
@@ -1158,7 +1161,10 @@ function socketCloseListener() {
if (req.res && req.res.readable) {
// Socket closed before we emitted "end" below.
req.res.emit('aborted');
- req.res.emit('end');
+ if (!req.res._ended) {
+ req.res._ended = true;
+ req.res.emit('end');
+ }
req.res.emit('close');
} else if (!req.res && !req._hadError) {
// This socket error fired before we started to