diff --git a/lib/mdns.js b/lib/mdns.js index 165deb1..60fe873 100644 --- a/lib/mdns.js +++ b/lib/mdns.js @@ -137,15 +137,13 @@ module.exports.start = function (deps, config, mainPort) { randomId.get().then(function (name) { var resp = createResponse(name, packet, config.mdns.ttl, mainPort); - // TODO: uncomment the lines below after the demo and fix the installer so that - // it can get the direct responses even on macOS. - // var now = Date.now(); - // if (now > nextBroadcast) { + var now = Date.now(); + if (now > nextBroadcast) { socket.send(resp, config.mdns.port, config.mdns.broadcast); - // nextBroadcast = now + config.mdns.ttl * 1000; - // } else { - // socket.send(resp, rinfo.port, rinfo.address); - // } + nextBroadcast = now + config.mdns.ttl * 1000; + } else { + socket.send(resp, rinfo.port, rinfo.address); + } }); }); @@ -155,5 +153,10 @@ module.exports.start = function (deps, config, mainPort) { socket.setBroadcast(true); socket.addMembership(config.mdns.broadcast); + // This is supposed to be a local device discovery mechanism, so we shouldn't + // need to hop through any gateways. This helps with security by making it + // much more difficult for someone to use us as part of a DDoS attack by + // spoofing the UDP address a request came from. + socket.setTTL(1); }); };