From 1d586c36fe1013ed2193a27e0a3b620e23651f09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=B4=A0=C9=AA=E1=B4=84=E1=B4=9B=E1=B4=8F=CA=80=20=CA=99?= =?UTF-8?q?=E1=B4=8A=E1=B4=87=CA=9F=E1=B4=8B=CA=9C=E1=B4=8F=CA=9F=E1=B4=8D?= Date: Thu, 4 Jan 2018 14:07:04 +0100 Subject: [PATCH] fix: Clear interval when stopping (#63) --- src/index.js | 5 ++++- src/query.js | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/index.js b/src/index.js index 1adf1bb..cb1642f 100644 --- a/src/index.js +++ b/src/index.js @@ -16,6 +16,7 @@ class MulticastDNS extends EventEmitter { this.serviceTag = options.serviceTag || '_ipfs-discovery._udp' this.port = options.port || 5353 this.peerInfo = peerInfo + this._queryInterval = null } start (callback) { @@ -24,7 +25,7 @@ class MulticastDNS extends EventEmitter { this.mdns = mdns - query.queryLAN(this.mdns, this.serviceTag, this.interval) + this._queryInterval = query.queryLAN(this.mdns, this.serviceTag, this.interval) mdns.on('response', (event) => { query.gotResponse(event, this.peerInfo, this.serviceTag, (err, foundPeer) => { @@ -47,6 +48,8 @@ class MulticastDNS extends EventEmitter { if (!this.mdns) { callback(new Error('MulticastDNS service had not started yet')) } else { + clearInterval(this._queryInterval) + this._queryInterval = null this.mdns.destroy(callback) this.mdns = undefined } diff --git a/src/query.js b/src/query.js index dfc325e..2c97c6c 100644 --- a/src/query.js +++ b/src/query.js @@ -12,7 +12,7 @@ const tcp = new TCP() module.exports = { queryLAN: function (mdns, serviceTag, interval) { - setInterval(() => { + return setInterval(() => { mdns.query({ questions: [{ name: serviceTag,