Browse Source

Guard against emitting 'end' twice on http responses

v0.8.7-release
isaacs 13 years ago
parent
commit
14a5b45c06
  1. 6
      lib/http.js

6
lib/http.js

@ -125,8 +125,11 @@ function parserOnMessageComplete() {
if (!parser.incoming.upgrade) {
// For upgraded connections, also emit this after parser.execute
parser.incoming.readable = false;
if (!parser.incoming._ended) {
parser.incoming._ended = true;
parser.incoming.emit('end');
}
}
if (parser.socket.readable) {
// force to read the next incoming message
@ -1158,7 +1161,10 @@ function socketCloseListener() {
if (req.res && req.res.readable) {
// Socket closed before we emitted "end" below.
req.res.emit('aborted');
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

Loading…
Cancel
Save