Browse Source

net: don't suppress ECONNRESET

Let ECONNRESET network errors bubble up so clients can detect them.

Commit c4454d2e suppressed and turned them into regular end-of-stream
events to fix the then-failing simple/test-regress-GH-1531 test. See
also issue #1571 for (scant) details.

It turns out that special handling is no longer necessary. Remove the
special casing and let the error bubble up naturally.

pummel/test-https-ci-reneg-attack and pummel/test-tls-ci-reneg-attack
are updated because they expected an EPIPE error code that is now an
ECONNRESET. Suppression of the ECONNRESET prevented the test from
detecting that the connection has been severed whereupon the next
write would fail with an EPIPE.

Fixes #1776.
v0.9.10-release
Ben Noordhuis 12 years ago
committed by isaacs
parent
commit
14a4245051
  1. 6
      lib/net.js
  2. 2
      test/pummel/test-https-ci-reneg-attack.js
  3. 2
      test/pummel/test-tls-ci-reneg-attack.js

6
lib/net.js

@ -505,11 +505,7 @@ function onread(buffer, offset, length) {
} else {
debug('error', errno);
// Error
if (errno == 'ECONNRESET') {
self._destroy();
} else {
self._destroy(errnoException(errno, 'read'));
}
self._destroy(errnoException(errno, 'read'));
}
}

2
test/pummel/test-https-ci-reneg-attack.js

@ -89,7 +89,7 @@ function test(next) {
var closed = false;
child.stdin.on('error', function(err) {
assert.equal(err.code, 'EPIPE');
assert.equal(err.code, 'ECONNRESET');
closed = true;
});
child.stdin.on('close', function() {

2
test/pummel/test-tls-ci-reneg-attack.js

@ -87,7 +87,7 @@ function test(next) {
var closed = false;
child.stdin.on('error', function(err) {
assert.equal(err.code, 'EPIPE');
assert.equal(err.code, 'ECONNRESET');
closed = true;
});
child.stdin.on('close', function() {

Loading…
Cancel
Save