From 64a06c5ffd92f678d318e61fb8da8c51f028627c Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Tue, 5 Jul 2011 15:42:32 -0700 Subject: [PATCH] Revert "Error argument for http.ServerRequest 'close'" Too slow. This reverts commit e7ac6d8fcd3841da072d8b4b6c328b33549d45c3. --- lib/http.js | 12 +---- test/simple/test-http-request-aborted.js | 44 ------------------- test/simple/test-http-set-timeout.js | 9 ++-- test/simple/test-https-request-aborted.js | 53 ----------------------- test/simple/test-https-request-timeout.js | 53 ----------------------- 5 files changed, 5 insertions(+), 166 deletions(-) delete mode 100644 test/simple/test-http-request-aborted.js delete mode 100644 test/simple/test-https-request-aborted.js delete mode 100644 test/simple/test-https-request-timeout.js diff --git a/lib/http.js b/lib/http.js index 5dc62745ce..3b5c15f814 100644 --- a/lib/http.js +++ b/lib/http.js @@ -980,20 +980,12 @@ function connectionListener(socket) { var self = this; var outgoing = []; var incoming = []; - var abortError = null; function abortIncoming() { - if (!abortError) { - abortError = new Error('http.ServerRequest was aborted by the client'); - abortError.code = 'aborted'; - } - while (incoming.length) { var req = incoming.shift(); - - // @deprecated, should be removed in 0.5.x req.emit('aborted'); - req.emit('close', abortError); + req.emit('close'); } // abort socket._httpMessage ? } @@ -1004,8 +996,6 @@ function connectionListener(socket) { socket.setTimeout(2 * 60 * 1000); // 2 minute timeout socket.addListener('timeout', function() { - abortError = new Error('http.ServerRequest timed out'); - abortError.code = 'timeout'; socket.destroy(); }); diff --git a/test/simple/test-http-request-aborted.js b/test/simple/test-http-request-aborted.js deleted file mode 100644 index b80b0edfed..0000000000 --- a/test/simple/test-http-request-aborted.js +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -var common = require('../common'); -var assert = require('assert'); -var http = require('http'); -var net = require('net'); - -var closeError; - -var server = http.Server(function(req, res) { - req.on('close', function(err) { - closeError = err; - server.close(); - }); -}); - -server.listen(common.PORT, function() { - var socket = net.createConnection(common.PORT); - socket.write('GET / HTTP/1.1\n\n'); - socket.end(); -}); - -process.on('exit', function() { - assert.equal(closeError.code, 'aborted'); -}); diff --git a/test/simple/test-http-set-timeout.js b/test/simple/test-http-set-timeout.js index fbc8f2c630..641a425f8d 100644 --- a/test/simple/test-http-set-timeout.js +++ b/test/simple/test-http-set-timeout.js @@ -24,12 +24,11 @@ var assert = require('assert'); var http = require('http'); var server = http.createServer(function(req, res) { - console.log('got request. setting 100ms second timeout'); - req.connection.setTimeout(100); - - req.on('close', function(err) { - assert.strictEqual(err.code, 'timeout'); + console.log('got request. setting 1 second timeout'); + req.connection.setTimeout(500); + req.connection.addListener('timeout', function() { + req.connection.destroy(); common.debug('TIMEOUT'); server.close(); }); diff --git a/test/simple/test-https-request-aborted.js b/test/simple/test-https-request-aborted.js deleted file mode 100644 index d3d7ac4f0b..0000000000 --- a/test/simple/test-https-request-aborted.js +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -var common = require('../common'); -var assert = require('assert'); -var https = require('https'); -var fs = require('fs'); - -var closeError; - -var options = { - key: fs.readFileSync(common.fixturesDir + '/keys/agent1-key.pem'), - cert: fs.readFileSync(common.fixturesDir + '/keys/agent1-cert.pem') -}; - -var server = https.Server(options, function(req, res) { - res.writeHead(200); - res.write('Hi'); - - req.on('close', function(err) { - closeError = err; - server.close(); - }); -}); - -server.listen(common.PORT, function() { - https.get({port: common.PORT, path: '/'}, function(res) { - res.socket.end(); - }) -}); - -process.on('exit', function() { - console.log(closeError); - assert.equal(closeError.code, 'aborted'); -}); diff --git a/test/simple/test-https-request-timeout.js b/test/simple/test-https-request-timeout.js deleted file mode 100644 index 14335ed58b..0000000000 --- a/test/simple/test-https-request-timeout.js +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -var common = require('../common'); -var assert = require('assert'); -var https = require('https'); -var fs = require('fs'); - -var closeError; - -var options = { - key: fs.readFileSync(common.fixturesDir + '/keys/agent1-key.pem'), - cert: fs.readFileSync(common.fixturesDir + '/keys/agent1-cert.pem') -}; - -var server = https.Server(options, function(req, res) { - req.connection.setTimeout(100); - res.writeHead(200); - res.write('Hi'); - - req.on('close', function(err) { - closeError = err; - server.close(); - }); -}); - -server.listen(common.PORT, function() { - https.get({port: common.PORT, path: '/'}, function(res) { - - }) -}); - -process.on('exit', function() { - assert.equal(closeError.code, 'timeout'); -});