From 810d0a8e906735f1710747eadd41177d005eb0a6 Mon Sep 17 00:00:00 2001 From: tigerbot Date: Tue, 30 May 2017 12:35:29 -0600 Subject: [PATCH] mDNS responder now sometimes responds directly --- lib/mdns.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/mdns.js b/lib/mdns.js index cc08ccd..5447f92 100644 --- a/lib/mdns.js +++ b/lib/mdns.js @@ -104,6 +104,7 @@ function createResponse(name, packet, ttl) { module.exports.start = function (deps, config) { var socket = require('dgram').createSocket({ type: 'udp4', reuseAddr: true }); var dns = require('dns-suite'); + var nextBroadcast = -1; socket.on('message', function (message, rinfo) { // console.log('Received %d bytes from %s:%d', message.length, rinfo.address, rinfo.port); @@ -130,7 +131,13 @@ module.exports.start = function (deps, config) { randomId.get().then(function (name) { var resp = createResponse(name, packet, config.mdns.ttl); - socket.send(resp, config.mdns.port, config.mdns.broadcast); + 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); + } }); });