Skip to content

Commit

Permalink
Don't error on ENOTCONN from shutdown()
Browse files Browse the repository at this point in the history
  • Loading branch information
ry committed Apr 11, 2011
1 parent dcc2dd5 commit 9ccf0e5
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 2 deletions.
2 changes: 1 addition & 1 deletion lib/http.js
Original file line number Diff line number Diff line change
Expand Up @@ -1185,7 +1185,7 @@ Agent.prototype._establishNewConnection = function() {
parser.incoming = null;

socket.on('error', function(err) {
debug('AGENT SOCKET ERROR: ' + err.message);
debug('AGENT SOCKET ERROR: ' + err.message + '\n' + err.stack);
var req;
if (socket._httpMessage) {
req = socket._httpMessage;
Expand Down
7 changes: 6 additions & 1 deletion lib/net.js
Original file line number Diff line number Diff line change
Expand Up @@ -844,7 +844,12 @@ Socket.prototype._shutdown = function() {
try {
this._shutdownImpl();
} catch (e) {
this.destroy(e);
if (e.code == 'ENOTCONN') {
// Allowed.
this.destroy();
} else {
this.destroy(e);
}
}
} else {
// writable but not readable
Expand Down
39 changes: 39 additions & 0 deletions test/disabled/GH-670.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
var assert = require('assert');
var https = require('https');
var tls = require('tls');

var options = {
host: 'github.com',
path: '/kriskowal/tigerblood/',
port: 443
};

var req = https.get(options, function(response) {
var recved = 0;

response.on('data', function(chunk) {
recved += chunk.length;
console.log('Response data.');
});

response.on('end', function() {
console.log('Response end.');
// Does not work
loadDom();
});

});

req.on('error', function(e) {
console.log('Error on get.');
});

function loadDom() {
// Do a lot of computation to stall the process.
// In the meantime the socket will be disconnected.
for (var i = 0; i < 1e8; i++) {
;
}

console.log('Dom loaded.');
}

0 comments on commit 9ccf0e5

Please sign in to comment.