// This example attempts to time out before the connection is established
// https://groups.google.com/forum/#!topic/nodejs/UE0ZbfLt6t8
// https://groups.google.com/forum/#!topic/nodejs-dev/jR7-5UDqXkw
-//
-// TODO: how to do this without relying on the responses of specific sites?
var common = require('../common');
var net = require('net');
var start = new Date();
-var gotTimeout0 = false;
-var gotTimeout1 = false;
+var gotTimeout = false;
-var gotConnect0 = false;
-var gotConnect1 = false;
+var gotConnect = false;
var T = 100;
-// With DNS
+// 240.*.*.*.* is "reserved for future use"
+var socket = net.createConnection(9999, '240.0.0.0');
-var socket0 = net.createConnection(9999, 'google.com');
+socket.setTimeout(T);
-socket0.setTimeout(T);
-
-socket0.on('timeout', function() {
- console.error('timeout');
- gotTimeout0 = true;
- var now = new Date();
- assert.ok(now - start < T + 500);
- socket0.destroy();
-});
-
-socket0.on('connect', function() {
- console.error('connect');
- gotConnect0 = true;
- socket0.destroy();
-});
-
-
-// Without DNS
-
-var socket1 = net.createConnection(9999, '24.24.24.24');
-
-socket1.setTimeout(T);
-
-socket1.on('timeout', function() {
+socket.on('timeout', function() {
console.error('timeout');
- gotTimeout1 = true;
+ gotTimeout = true;
var now = new Date();
assert.ok(now - start < T + 500);
- socket1.destroy();
+ socket.destroy();
});
-socket1.on('connect', function() {
+socket.on('connect', function() {
console.error('connect');
- gotConnect1 = true;
- socket1.destroy();
+ gotConnect = true;
+ socket.destroy();
});
process.on('exit', function() {
- assert.ok(gotTimeout0);
- assert.ok(!gotConnect0);
-
- assert.ok(gotTimeout1);
- assert.ok(!gotConnect1);
+ assert.ok(gotTimeout);
+ assert.ok(!gotConnect);
});