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 ?
}
socket.setTimeout(2 * 60 * 1000); // 2 minute timeout
socket.addListener('timeout', function() {
- abortError = new Error('http.ServerRequest timed out');
- abortError.code = 'timeout';
socket.destroy();
});
+++ /dev/null
-// 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');
-});
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();
});
+++ /dev/null
-// 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');
-});
+++ /dev/null
-// 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');
-});