diff --git a/advertisements_without_network.js b/advertisements_without_network.js new file mode 100644 index 0000000..473d098 --- /dev/null +++ b/advertisements_without_network.js @@ -0,0 +1,20 @@ +// docker run --init -it --network none -v $(pwd):/tmp --rm node bash -c "node /tmp/advertisements_without_network.js" + +const dnssd = require('./') + +const interfaces = require('os').networkInterfaces() +Object.entries(interfaces).forEach(([name, addresses]) => { + console.log(name) + console.log(addresses) + if (addresses.filter(addressRecord => addressRecord.family === 'IPv4').length) { + const ad = new dnssd.Advertisement(dnssd.tcp('http'), 9999, { + interface: name + }) + ad.on('error', err => { + console.log(err) + }) + ad.start() + } +}) + +// setInterval(() => console.log('yay'), 1000) diff --git a/lib/NetworkInterface.js b/lib/NetworkInterface.js index c2b470b..e9d9aea 100644 --- a/lib/NetworkInterface.js +++ b/lib/NetworkInterface.js @@ -434,8 +434,10 @@ NetworkInterface.prototype.stop = function () { NetworkInterface.prototype._onError = function (err) { debug(this._id + ' had an error: ' + err + '\n' + err.stack); + if (this._usingMe > 0) { + this.emit('error', err); + } this.stop(); - this.emit('error', err); }; module.exports = NetworkInterface; \ No newline at end of file diff --git a/src/NetworkInterface.js b/src/NetworkInterface.js index d342e4c..c88f8cd 100644 --- a/src/NetworkInterface.js +++ b/src/NetworkInterface.js @@ -425,11 +425,13 @@ NetworkInterface.prototype.stop = function() { }; -NetworkInterface.prototype._onError = function(err) { +NetworkInterface.prototype._onError = function (err) { debug(`${this._id} had an error: ${err}\n${err.stack}`); + if (this._usingMe > 0) { + this.emit('error', err); + } this.stop(); - this.emit('error', err); };