summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorBen Noordhuis <info@bnoordhuis.nl>2015-01-08 11:42:34 +0100
committerBen Noordhuis <info@bnoordhuis.nl>2015-01-08 13:17:17 +0100
commitdf3c4ca16ed2c72b72ea261753a910548d097e87 (patch)
tree440b34a8106c4f916ac30b427b1fa168b3746616 /test
parent4519db0407e394170eee958920112f153c27912a (diff)
downloadnode-new-df3c4ca16ed2c72b72ea261753a910548d097e87.tar.gz
Revert "test: don't assume broadcast traffic is unfiltered"
This reverts commit 52e600a9c8655f578fae55d85e778b58d731201a. Reverted for: * making the test fail with ENETUNREACH on OS X 10.8, and * making the test fail with EHOSTDOWN on OS X 10.9 and 10.10 when there is no network connectivity, and * leaving behind orphan processes that make subsequent tests fail with EADDRINUSE errors PR-URL: https://github.com/iojs/io.js/pull/259 Reviewed-By: Rod Vagg <rod@vagg.org>
Diffstat (limited to 'test')
-rw-r--r--test/parallel/test-dgram-broadcast-multi-process.js18
1 files changed, 16 insertions, 2 deletions
diff --git a/test/parallel/test-dgram-broadcast-multi-process.js b/test/parallel/test-dgram-broadcast-multi-process.js
index b05abd8d4f..4d9eebc101 100644
--- a/test/parallel/test-dgram-broadcast-multi-process.js
+++ b/test/parallel/test-dgram-broadcast-multi-process.js
@@ -23,6 +23,7 @@ var common = require('../common'),
assert = require('assert'),
dgram = require('dgram'),
util = require('util'),
+ networkInterfaces = require('os').networkInterfaces(),
Buffer = require('buffer').Buffer,
fork = require('child_process').fork,
LOCAL_BROADCAST_HOST = '255.255.255.255',
@@ -34,6 +35,19 @@ var common = require('../common'),
new Buffer('Fourth message to send')
];
+// take the first non-internal interface as the address for binding
+get_bindAddress: for (var name in networkInterfaces) {
+ var interfaces = networkInterfaces[name];
+ for(var i = 0; i < interfaces.length; i++) {
+ var localInterface = interfaces[i];
+ if (!localInterface.internal && localInterface.family === 'IPv4') {
+ var bindAddress = localInterface.address;
+ break get_bindAddress;
+ }
+ }
+}
+assert.ok(bindAddress);
+
if (process.argv[2] !== 'child') {
var workers = {},
listeners = 3,
@@ -150,7 +164,7 @@ if (process.argv[2] !== 'child') {
// bind the address explicitly for sending
// INADDR_BROADCAST to only one interface
- sendSocket.bind(common.PORT, '127.0.0.1');
+ sendSocket.bind(common.PORT, bindAddress);
sendSocket.on('listening', function () {
sendSocket.setBroadcast(true);
});
@@ -197,7 +211,7 @@ if (process.argv[2] === 'child') {
listenSocket.on('message', function(buf, rinfo) {
// receive udp messages only sent from parent
- if (rinfo.address !== '127.0.0.1') return;
+ if (rinfo.address !== bindAddress) return;
console.error('[CHILD] %s received %s from %j',
process.pid,