Fix global leaks
authorRyan Dahl <ry@tinyclouds.org>
Sun, 5 Dec 2010 00:11:57 +0000 (16:11 -0800)
committerRyan Dahl <ry@tinyclouds.org>
Sun, 5 Dec 2010 00:36:21 +0000 (16:36 -0800)
30 files changed:
lib/net.js
test/fixtures/print-chars-from-buffer.js
test/message/2100bytes.js
test/message/hello_world.js
test/pummel/test-keep-alive.js
test/pummel/test-net-many-clients.js
test/pummel/test-net-pause.js
test/pummel/test-net-pingpong-delay.js
test/pummel/test-net-pingpong.js
test/pummel/test-net-throttle.js
test/pummel/test-net-timeout.js
test/pummel/test-timers.js
test/simple/test-http-exceptions.js
test/simple/test-http-expect-continue.js
test/simple/test-http-keep-alive-close-on-header.js
test/simple/test-http-keep-alive.js
test/simple/test-http-server.js
test/simple/test-http-upgrade-server2.js
test/simple/test-http-write-empty-string.js
test/simple/test-http.js
test/simple/test-listen-fd.js
test/simple/test-net-binary.js
test/simple/test-net-server-max-connections.js
test/simple/test-pipe-head.js
test/simple/test-pump-file2tcp-noexist.js
test/simple/test-pump-file2tcp.js
test/simple/test-signal-handler.js
test/simple/test-stdin-from-file.js
test/simple/test-stdout-to-file.js
test/simple/test-string-decoder.js

index 0cd5bb1..1f49101 100644 (file)
@@ -853,7 +853,7 @@ Server.prototype._rejectPending = function() {
   // Accept and close the waiting clients one at a time.
   // Single threaded programming ftw.
   while (true) {
-    peerInfo = accept(this.fd);
+    var peerInfo = accept(this.fd);
     if (!peerInfo) return;
     close(peerInfo.fd);
 
index 9f15b15..e742e6e 100644 (file)
@@ -1,10 +1,9 @@
 var common = require('../common');
 var assert = require('assert');;
-Buffer = require('buffer').Buffer;
 
 var n = parseInt(process.argv[2]);
 
-b = new Buffer(n);
+var b = new Buffer(n);
 for (var i = 0; i < n; i++) {
   b[i] = 100;
 }
index f4da1a3..59fe3c1 100644 (file)
@@ -1,7 +1,7 @@
-common = require('../common');
-assert = common.assert;
+var common = require('../common');
+var assert = require('assert');
+var util = require('util');
 
-util = require('util');
 console.log([
   '_______________________________________________50',
   '______________________________________________100',
index 6f60c4c..996e08d 100644 (file)
@@ -1,4 +1,4 @@
-common = require('../common');
-assert = common.assert;
+var common = require('../common');
+var assert = require('assert');
 
 console.log('hello world');
index 178fc87..d39ddc2 100644 (file)
@@ -1,11 +1,11 @@
 // This test requires the program 'ab'
 var common = require('../common');
 var assert = require('assert');;
-http = require('http');
-exec = require('child_process').exec;
+var http = require('http');
+var exec = require('child_process').exec;
 
-body = 'hello world\n';
-server = http.createServer(function(req, res) {
+var body = 'hello world\n';
+var server = http.createServer(function(req, res) {
   res.writeHead(200, {
     'Content-Length': body.length,
     'Content-Type': 'text/plain'
index ab42762..b59808e 100644 (file)
@@ -1,6 +1,7 @@
 var common = require('../common');
 var assert = require('assert');;
-net = require('net');
+var net = require('net');
+
 // settings
 var bytes = 1024 * 40;
 var concurrency = 100;
index 057da9f..de101d0 100644 (file)
@@ -1,10 +1,11 @@
 var common = require('../common');
 var assert = common.assert;
 var net = require('net');
+
 var N = 200;
 var recv = '', chars_recved = 0;
 
-server = net.createServer(function(connection) {
+var server = net.createServer(function(connection) {
   function write(j) {
     if (j >= N) {
       connection.end();
@@ -17,8 +18,9 @@ server = net.createServer(function(connection) {
   }
   write(0);
 });
+
 server.on('listening', function() {
-  client = net.createConnection(common.PORT);
+  var client = net.createConnection(common.PORT);
   client.setEncoding('ascii');
   client.addListener('data', function(d) {
     common.print(d);
index cac8418..a30a694 100644 (file)
@@ -1,6 +1,6 @@
 var common = require('../common');
 var assert = require('assert');;
-net = require('net');
+var net = require('net');
 
 
 var tests_run = 0;
index d6b828a..f2d8903 100644 (file)
@@ -1,6 +1,6 @@
 var common = require('../common');
 var assert = require('assert');;
-net = require('net');
+var net = require('net');
 
 var tests_run = 0;
 
index 11799cb..02005d0 100644 (file)
@@ -1,11 +1,10 @@
 var common = require('../common');
 var assert = require('assert');;
-net = require('net');
-N = 160 * 1024; // 30kb
+var net = require('net');
 
-
-chars_recved = 0;
-npauses = 0;
+var N = 160 * 1024; // 30kb
+var chars_recved = 0;
+var npauses = 0;
 
 console.log('build big string');
 var body = '';
@@ -15,15 +14,16 @@ for (var i = 0; i < N; i++) {
 
 console.log('start server on port ' + common.PORT);
 
-server = net.createServer(function(connection) {
+var server = net.createServer(function(connection) {
   connection.addListener('connect', function() {
     assert.equal(false, connection.write(body));
     connection.end();
   });
 });
+
 server.listen(common.PORT, function() {
   var paused = false;
-  client = net.createConnection(common.PORT);
+  var client = net.createConnection(common.PORT);
   client.setEncoding('ascii');
   client.addListener('data', function(d) {
     chars_recved += d.length;
@@ -33,7 +33,7 @@ server.listen(common.PORT, function() {
       npauses += 1;
       paused = true;
       console.log('pause');
-      x = chars_recved;
+      var x = chars_recved;
       setTimeout(function() {
         assert.equal(chars_recved, x);
         client.resume();
index 0b58256..68650f1 100644 (file)
@@ -1,10 +1,11 @@
 var common = require('../common');
 var assert = require('assert');;
-net = require('net');
-exchanges = 0;
-starttime = null;
-timeouttime = null;
-timeout = 1000;
+var net = require('net');
+
+var exchanges = 0;
+var starttime = null;
+var timeouttime = null;
+var timeout = 1000;
 
 var echo_server = net.createServer(function(socket) {
   socket.setTimeout(timeout);
index 0afe5a6..3cc8777 100644 (file)
@@ -1,8 +1,6 @@
 var common = require('../common');
 var assert = require('assert');
 
-assert = require('assert');
-
 var WINDOW = 200; // why is does this need to be so big?
 
 var interval_count = 0;
@@ -79,8 +77,8 @@ setInterval(function(param1, param2){
 }, 1000, 'param1', 'param2');
 
 // setInterval(cb, 0) should be called multiple times.
-count4 = 0;
-interval4 = setInterval(function() {
+var count4 = 0;
+var interval4 = setInterval(function() {
   if (++count4 > 10) clearInterval(interval4);
 }, 0);
 
@@ -92,12 +90,12 @@ function t () {
   expectedTimeouts--;
 }
 
-w = setTimeout(t, 200),
-x = setTimeout(t, 200),
-y = setTimeout(t, 200);
+var w = setTimeout(t, 200);
+var x = setTimeout(t, 200);
+var y = setTimeout(t, 200);
 
-clearTimeout(y),
-z = setTimeout(t, 200);
+clearTimeout(y);
+var z = setTimeout(t, 200);
 clearTimeout(y);
 
 
index 48e95cd..4e711d7 100644 (file)
@@ -2,7 +2,7 @@ var common = require('../common');
 var assert = require('assert');;
 var http = require('http');
 
-server = http.createServer(function (req, res) {
+var server = http.createServer(function (req, res) {
   intentionally_not_defined();
   res.writeHead(200, {"Content-Type": "text/plain"});
   res.write("Thank you, come again.");
@@ -17,7 +17,7 @@ server.listen(common.PORT, function () {
   }
 });
 
-exception_count = 0;
+var exception_count = 0;
 
 process.addListener("uncaughtException", function (err) {
   console.log("Caught an exception: " + err);
index 6ccaadc..5b64cee 100644 (file)
@@ -1,5 +1,5 @@
 var common = require("../common");
-var assert = common.assert;
+var assert = require('assert');
 var http = require("http");
 
 var outstanding_reqs = 0;
@@ -31,12 +31,12 @@ server.listen(common.PORT);
 
 server.addListener("listening", function() {
   var client = http.createClient(common.PORT);
-  req = client.request("POST", "/world", {
+  var req = client.request("POST", "/world", {
       "Expect": "100-continue",
   });
   common.debug("Client sending request...");
   outstanding_reqs++;
-  body = "";
+  var body = "";
   req.addListener('continue', function () {
       common.debug("Client got 100 Continue...");
       got_continue = true;
index 7d55469..03538b5 100644 (file)
@@ -1,20 +1,18 @@
 var common = require('../common');
 var assert = require('assert');
-
-assert = require("assert");
 var http = require('http');
 var util = require('util');
 
-body = "hello world\n";
-headers = {'connection':'keep-alive'}
+var body = "hello world\n";
+var headers = {'connection':'keep-alive'}
 
-server = http.createServer(function (req, res) {
+var server = http.createServer(function (req, res) {
   res.writeHead(200, {"Content-Length": body.length, "Connection":"close"});
   res.write(body);
   res.end();
 });
 
-connectCount = 0;
+var connectCount = 0;
 
 server.listen(common.PORT, function () {
   var client = http.createClient(common.PORT);
index 032f1cd..b44f4d4 100644 (file)
@@ -1,20 +1,18 @@
 var common = require('../common');
 var assert = require('assert');
-
-assert = require("assert");
 var http = require('http');
 var util = require('util');
 
-body = "hello world\n";
-headers = {'connection':'keep-alive'}
+var body = "hello world\n";
+var headers = {'connection':'keep-alive'}
 
-server = http.createServer(function (req, res) {
+var server = http.createServer(function (req, res) {
   res.writeHead(200, {"Content-Length": body.length});
   res.write(body);
   res.end();
 });
 
-connectCount = 0;
+var connectCount = 0;
 
 server.listen(common.PORT, function () {
   var client = http.createClient(common.PORT);
index 2919c96..1a1525b 100644 (file)
@@ -2,8 +2,8 @@ var common = require('../common');
 var assert = require('assert');
 var net = require('net');
 var http = require('http');
-url = require("url");
-qs = require("querystring");
+var url = require("url");
+var qs = require("querystring");
 
 var request_number = 0;
 var requests_sent = 0;
index a5129a4..d80768c 100644 (file)
@@ -1,10 +1,9 @@
 var common = require('../common');
 var assert = require('assert');
-
 var http = require('http');
 var net = require('net');
 
-server = http.createServer(function (req, res) {
+var server = http.createServer(function (req, res) {
   common.error('got req');
   throw new Error("This shouldn't happen.");
 });
@@ -16,7 +15,7 @@ server.addListener('upgrade', function (req, socket, upgradeHead) {
   throw new Error('upgrade error');
 });
 
-gotError = false;
+var gotError = false;
 
 process.addListener('uncaughtException', function (e) {
   common.error('got "clientError" event');
index 1e4a169..5378d81 100644 (file)
@@ -2,9 +2,8 @@ var common = require('../common');
 var assert = require('assert');
 
 var http = require('http');
-assert = require('assert');
 
-server = http.createServer(function (request, response) {
+var server = http.createServer(function (request, response) {
   console.log('responding to ' + request.url);
 
   response.writeHead(200, {'Content-Type': 'text/plain'});
index a60398a..824f722 100644 (file)
@@ -1,7 +1,7 @@
 var common = require('../common');
 var assert = require('assert');
 var http = require('http');
-url = require("url");
+var url = require("url");
 
 function p (x) {
   common.error(common.inspect(x));
index 3323e2d..d7bc1b7 100644 (file)
@@ -4,7 +4,7 @@
 var common = require('../common');
 var assert = require('assert');
 var http = require('http');
-netBinding = process.binding('net');
+var netBinding = process.binding('net');
 
 // Create an server and set it listening on a socket bound to common.PORT
 var gotRequest = false;
index 476ab4e..7b5abf5 100644 (file)
@@ -2,10 +2,10 @@ var common = require('../common');
 var assert = require('assert');
 var net = require('net');
 
-binaryString = "";
+var binaryString = "";
 for (var i = 255; i >= 0; i--) {
   var s = "'\\" + i.toString(8) + "'";
-  S = eval(s);
+  var S = eval(s);
   common.error( s
        + " "
        + JSON.stringify(S)
index 301c12a..2b1bc29 100644 (file)
@@ -8,12 +8,12 @@ var net = require('net');
 // TODO: test that the server can accept more connections after it reaches
 // its maximum and some are closed.
 
-N = 200;
-count = 0;
-closes = 0;
-waits = [];
+var N = 200;
+var count = 0;
+var closes = 0;
+var waits = [];
 
-server = net.createServer(function (connection) {
+var server = net.createServer(function (connection) {
   console.error("connect %d", count++);
   connection.write("hello");
   waits.push(function () { connection.end(); });
index 51d7659..3a79e9b 100644 (file)
@@ -1,19 +1,18 @@
 var common = require('../common');
 var assert = require('assert');
+var exec = require('child_process').exec;
+var join = require('path').join;
 
-exec = require('child_process').exec;
-join = require('path').join;
+var nodePath = process.argv[0];
+var script = join(common.fixturesDir, 'print-10-lines.js');
 
-nodePath = process.argv[0];
-script = join(common.fixturesDir, 'print-10-lines.js');
+var cmd = nodePath + ' ' + script + ' | head -2';
 
-cmd = nodePath + ' ' + script + ' | head -2';
-
-finished = false;
+var finished = false;
 
 exec(cmd, function (err, stdout, stderr) {
   if (err) throw err;
-  lines = stdout.split('\n');
+  var lines = stdout.split('\n');
   assert.equal(3, lines.length);
   finished = true;
 });
index 1cf2c6a..b2f608e 100644 (file)
@@ -4,12 +4,12 @@ var net = require('net');
 var fs = require('fs');
 var util = require('util');
 var path = require('path');
-fn = path.join(common.fixturesDir, 'does_not_exist.txt');
+var fn = path.join(common.fixturesDir, 'does_not_exist.txt');
 
 var got_error = false;
 var conn_closed = false;
 
-server = net.createServer(function (stream) {
+var server = net.createServer(function (stream) {
   common.error('pump!');
   util.pump(fs.createReadStream(fn), stream, function (err) {
     common.error("util.pump's callback fired");
@@ -25,7 +25,7 @@ server = net.createServer(function (stream) {
 });
 
 server.listen(common.PORT, function () {
-  conn = net.createConnection(common.PORT);
+  var conn = net.createConnection(common.PORT);
   conn.setEncoding('utf8');
   conn.addListener("data", function (chunk) {
     common.error('recv data! nchars = ' + chunk.length);
@@ -43,7 +43,6 @@ server.listen(common.PORT, function () {
 });
 
 var buffer = '';
-count = 0;
 
 process.addListener('exit', function () {
   assert.equal(true, got_error);
index 07572ae..9622b86 100644 (file)
@@ -4,11 +4,11 @@ var net = require('net');
 var fs = require('fs');
 var util = require('util');
 var path = require('path');
-fn = path.join(common.fixturesDir, 'elipses.txt');
+var fn = path.join(common.fixturesDir, 'elipses.txt');
 
-expected = fs.readFileSync(fn, 'utf8');
+var expected = fs.readFileSync(fn, 'utf8');
 
-server = net.createServer(function (stream) {
+var server = net.createServer(function (stream) {
   common.error('pump!');
   util.pump(fs.createReadStream(fn), stream, function () {
     common.error('server stream close');
@@ -18,7 +18,7 @@ server = net.createServer(function (stream) {
 });
 
 server.listen(common.PORT, function () {
-  conn = net.createConnection(common.PORT);
+  var conn = net.createConnection(common.PORT);
   conn.setEncoding('utf8');
   conn.addListener("data", function (chunk) {
     common.error('recv data! nchars = ' + chunk.length);
@@ -34,7 +34,7 @@ server.listen(common.PORT, function () {
 });
 
 var buffer = '';
-count = 0;
+var count = 0;
 
 server.addListener('listening', function () {
 });
index c3fa6b6..3c45052 100644 (file)
@@ -19,7 +19,7 @@ process.addListener('SIGUSR1', function () {
   }, 5);
 });
 
-i = 0;
+var i = 0;
 setInterval(function () {
   console.log("running process..." + ++i);
 
index 8fa0c24..ae97290 100644 (file)
@@ -1,17 +1,16 @@
 var common = require('../common');
 var assert = require('assert');
-
-join = require('path').join;
-childProccess = require('child_process');
+var join = require('path').join;
+var childProccess = require('child_process');
 var fs = require('fs');
 
-stdoutScript = join(common.fixturesDir, 'echo.js');
-tmpFile = join(common.fixturesDir, 'stdin.txt');
+var stdoutScript = join(common.fixturesDir, 'echo.js');
+var tmpFile = join(common.fixturesDir, 'stdin.txt');
 
-cmd = process.argv[0] + ' ' + stdoutScript + ' < ' + tmpFile;
+var cmd = process.argv[0] + ' ' + stdoutScript + ' < ' + tmpFile;
 
-string = "abc\nümlaut.\nsomething else\n"
-       + "南越国是前203年至前111年存在于岭南地区的一个国家,国都位于番禺,疆域包括今天中国的广东、广西两省区的大部份地区,福建省、湖南、贵州、云南的一小部份地区和越南的北部。南越国是秦朝灭亡后,由南海郡尉赵佗于前203年起兵兼并桂林郡和象郡后建立。前196年和前179年,南越国曾先后两次名义上臣属于西汉,成为西汉的“外臣”。前112年,南越国末代君主赵建德与西汉发生战争,被汉武帝于前111年所灭。南越国共存在93年,历经五代君主。南越国是岭南地区的第一个有记载的政权国家,采用封建制和郡县制并存的制度,它的建立保证了秦末乱世岭南地区社会秩序的稳定,有效的改善了岭南地区落后的政治、##济现状。\n";
+var string = "abc\nümlaut.\nsomething else\n" +
+             "南越国是前203年至前111年存在于岭南地区的一个国家,国都位于番禺,疆域包括今天中国的广东、广西两省区的大部份地区,福建省、湖南、贵州、云南的一小部份地区和越南的北部。南越国是秦朝灭亡后,由南海郡尉赵佗于前203年起兵兼并桂林郡和象郡后建立。前196年和前179年,南越国曾先后两次名义上臣属于西汉,成为西汉的“外臣”。前112年,南越国末代君主赵建德与西汉发生战争,被汉武帝于前111年所灭。南越国共存在93年,历经五代君主。南越国是岭南地区的第一个有记载的政权国家,采用封建制和郡县制并存的制度,它的建立保证了秦末乱世岭南地区社会秩序的稳定,有效的改善了岭南地区落后的政治、##济现状。\n";
 
 
 console.log(cmd + "\n\n");
index 4ba1c7c..d5f7dea 100644 (file)
@@ -1,11 +1,12 @@
 var common = require('../common');
 var assert = require('assert');
 var path = require('path');
-childProccess = require('child_process');
+var childProccess = require('child_process');
 var fs = require('fs');
-scriptString = path.join(common.fixturesDir, 'print-chars.js');
-scriptBuffer = path.join(common.fixturesDir, 'print-chars-from-buffer.js');
-tmpFile = path.join(common.fixturesDir, 'stdout.txt');
+
+var scriptString = path.join(common.fixturesDir, 'print-chars.js');
+var scriptBuffer = path.join(common.fixturesDir, 'print-chars-from-buffer.js');
+var tmpFile = path.join(common.fixturesDir, 'stdout.txt');
 
 function test (size, useBuffer, cb) {
   var cmd = process.argv[0]
@@ -39,7 +40,7 @@ function test (size, useBuffer, cb) {
   });
 }
 
-finished = false;
+var finished = false;
 test(1024*1024, false, function () {
   console.log("Done printing with string");
   test(1024*1024, true, function () {
index 3fb0811..f49d589 100644 (file)
@@ -1,13 +1,11 @@
 var common = require('../common');
-var assert = require('assert');;
+var assert = require('assert');
+var StringDecoder = require('string_decoder').StringDecoder;
+var decoder = new StringDecoder('utf8');
 
-Buffer = require('buffer').Buffer;
-StringDecoder = require('string_decoder').StringDecoder;
-decoder = new StringDecoder('utf8');
 
 
-
-buffer = new Buffer('$');
+var buffer = new Buffer('$');
 assert.deepEqual('$', decoder.write(buffer));
 
 buffer = new Buffer('¢');
@@ -20,7 +18,7 @@ assert.deepEqual('', decoder.write(buffer.slice(1, 2)));
 assert.deepEqual('€', decoder.write(buffer.slice(2, 3)));
 
 buffer = new Buffer([0xF0, 0xA4, 0xAD, 0xA2]);
-s = '';
+var s = '';
 s += decoder.write(buffer.slice(0, 1));
 s += decoder.write(buffer.slice(1, 2));
 s += decoder.write(buffer.slice(2, 3));
@@ -34,10 +32,10 @@ assert.ok(s.length > 0);
 // U+12E4 -> E1 8B A4
 // U+0030 -> 30
 // U+3045 -> E3 81 85
-expected = '\u02e4\u0064\u12e4\u0030\u3045';
-buffer = new Buffer([0xCB, 0xA4, 0x64, 0xE1, 0x8B, 0xA4,
-                     0x30, 0xE3, 0x81, 0x85]);
-charLengths = [0, 0, 1, 2, 2, 2, 3, 4, 4, 4, 5, 5];
+var expected = '\u02e4\u0064\u12e4\u0030\u3045';
+var buffer = new Buffer([0xCB, 0xA4, 0x64, 0xE1, 0x8B, 0xA4,
+                         0x30, 0xE3, 0x81, 0x85]);
+var charLengths = [0, 0, 1, 2, 2, 2, 3, 4, 4, 4, 5, 5];
 
 // Split the buffer into 3 segments
 //  |----|------|-------|