New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

mdns-js

Package Overview
Dependencies
Maintainers
1
Versions
31
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mdns-js - npm Package Compare versions

Comparing version 0.2.1 to 0.2.2

24

lib/decoder.js

@@ -74,13 +74,17 @@ var debug = require('debug')('mdns:lib:decoder');

};
var packet = dns.DNSPacket.parse(message);
var packets = dns.DNSPacket.parse(message);
if (!(packets instanceof Array)) {
packets = [packets];
}
var query = [];
packets.forEach(function (packet) {
decodeSection(packet, 'answer', data);
decodeSection(packet, 'authority', data);
decodeSection(packet, 'additional', data);
decodeSection(packet, 'answer', data);
decodeSection(packet, 'authority', data);
decodeSection(packet, 'additional', data);
var query = [];
packet.question.forEach(function (rec) {
if (rec.type === dns.DNSRecord.Type.PTR) {
query.push(rec.name);
}
packet.question.forEach(function (rec) {
if (rec.type === dns.DNSRecord.Type.PTR) {
query.push(rec.name);
}
});
});

@@ -87,0 +91,0 @@

@@ -10,3 +10,2 @@ var debug = require('debug')('mdns:lib:ServiceType');

var ServiceType = exports.ServiceType = function (/* ... */) {
var self = this;
this.name = '';

@@ -13,0 +12,0 @@ this.protocol = '';

{
"name": "mdns-js",
"version": "0.2.1",
"version": "0.2.2",
"repository": {

@@ -5,0 +5,0 @@ "type": "git",

@@ -20,84 +20,10 @@ var Lab = require('lab');

var Schemas = require('./schemas');
//var Schemas = require('./schemas');
var fixtureFolder = path.join(__dirname, 'fixtures');
var fixturesFolderDecoded = path.join(fixtureFolder, 'decoded-sections');
var fixturesFolderMessages = path.join(fixtureFolder, 'decoded-messages');
//shamelessly borrow from mdns-js-packet
var fixturesPacket = path.join('.', 'node_modules',
'mdns-js-packet', 'test', 'fixtures');
var path = require('path');
var helper = require('./helper');
function testDecodeSection (binFolder, jsFolder) {
var files = fs.readdirSync(binFolder).filter(function (f) {
return /\.bin$/.test(f);
});
files.forEach(function (file) {
it('decode ' + file, function (done) {
var djsFile = path.join(jsFolder, file.replace('.bin', '.js'));
var binFile = path.join(binFolder, file);
var djsExists = fs.existsSync(djsFile);
var b = helper.readBin(binFile);
expect(b).to.exist(b);
var packet = DNSPacket.parse(b);
var obj = {
question: {},
answer: {},
authority: {},
additional: {}
};
var count = 0;
var expected = 0;
for (var key in obj) {
expected++;
if (!obj.hasOwnProperty(key)) {continue;}
decoder.decodeSection(packet, key, obj[key]);
if (Schemas.hasOwnProperty(key)) {
Schemas.validate(obj[key], Schemas[key], validateSchema);
}
else {
throw new Error('Missing schema ' + key);
}
}
function validateSchema(err) {
if (err) {
console.log(key, obj[key]);
console.log('packet', packet);
if (!djsExists) {
helper.writeJs(djsFile, obj);
}
throw err;
}
count++;
}
if (!djsExists) {
helper.writeJs(djsFile, obj);
}
else {
var dj = helper.readJs(djsFile);
helper.equalDeep(dj, obj);
}
setTimeout(function () {
if (count >= expected) {
done();
}
else {
done('all schemas not validated');
}
}, 50);
});//--decode...
});
}
function testDecodeMessage (binFolder, jsFolder) {

@@ -133,9 +59,28 @@ var files = fs.readdirSync(binFolder).filter(function (f) {

describe('decodeSection', function () {
testDecodeSection(fixturesPacket, fixturesFolderDecoded);
});
it('should thow error on bad section', function (done) {
var p = new DNSPacket();
var obj = {};
var throws = function () {
decoder.decodeSection(p, 'asdfasdf', obj);
};
describe('decodeMessage', function () {
testDecodeMessage(fixturesPacket, fixturesFolderMessages);
expect(throws).to.throw(Error);
done();
});
it('should thow error on missing obj', function (done) {
var p = new DNSPacket();
var throws = function () {
decoder.decodeSection(p, 'question');
};
expect(throws).to.throw(Error);
done();
});
});
// describe('decodeMessage', function () {
// testDecodeMessage(fixturesPacket, fixturesFolderMessages);
// });
describe('decodeMessage - workstation', function () {

@@ -142,0 +87,0 @@ testDecodeMessage(fixtureFolder, fixtureFolder);

@@ -18,2 +18,5 @@ var Lab = require('lab');

expect(type.subtypes).to.be.empty();
expect(type.isWildcard()).to.be.false();
var a = type.toArray();
expect(a).to.be.instanceof(Array);
done();

@@ -42,2 +45,48 @@ });

});
it('should tak array as input', function (done) {
var type = new ServiceType(['_http', '_tcp']);
expect(type).to.include({protocol: 'tcp', name: 'http'});
expect(type.subtypes).to.be.empty();
done();
});
it('should take multiple arguments is input', function (done) {
var type = new ServiceType('_http', '_tcp');
expect(type).to.include({protocol: 'tcp', name: 'http'});
expect(type.subtypes).to.be.empty();
done();
});
it('should on empty arguments', function (done) {
var type = new ServiceType();
expect(type).to.include({protocol: '', name: ''});
expect(type.subtypes).to.be.empty();
done();
});
it('should take object as argument', function (done) {
var type = new ServiceType({protocol: 'tcp', name: 'http'});
expect(type).to.include({protocol: 'tcp', name: 'http'});
expect(type.subtypes).to.be.empty();
done();
});
it('should throw on bad protocol', function (done) {
var throws = function () {
new ServiceType('service._http._qwe.local');
};
expect(throws).to.throw(Error,
'protocol must be either "_tcp" or "_udp" but is "_qwe"');
done();
});
it('should throw on bad protocol', function (done) {
var throws = function () {
new ServiceType('service._http._qwe.local');
};
expect(throws).to.throw(Error,
'protocol must be either "_tcp" or "_udp" but is "_qwe"');
done();
});
});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc