Socket
Socket
Sign inDemoInstall

dns-packet

Package Overview
Dependencies
2
Maintainers
2
Versions
39
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.2.2 to 1.3.0

opcodes.js

130

index.js
var types = require('./types')
var rcodes = require('./rcodes')
var opcodes = require('./opcodes')
var ip = require('ip')

@@ -12,15 +14,19 @@ var Buffer = require('safe-buffer').Buffer

var name = {}
var name = exports.txt = exports.name = {}
name.encode = function (n, buf, offset) {
name.encode = function (str, buf, offset) {
if (!buf) buf = Buffer.allocUnsafe(name.encodingLength(n))
if (!offset) offset = 0
var list = n.split('.')
var oldOffset = offset
for (var i = 0; i < list.length; i++) {
var len = buf.write(list[i], offset + 1)
buf[offset] = len
offset += len + 1
// strip leading and trailing .
const n = str.replace(/^\.|\.$/gm, '')
if (n.length) {
const list = n.split('.')
for (var i = 0; i < list.length; i++) {
var len = buf.write(list[i], offset + 1)
buf[offset] = len
offset += len + 1
}
}

@@ -43,2 +49,6 @@

if (len === 0) {
name.decode.bytes = 1
return '.'
}
if (len >= 0xc0) {

@@ -131,2 +141,12 @@ var res = name.decode(buf, buf.readUInt16BE(offset - 1) - 0xc000)

flags: flags & 32767,
flag_qr: ((flags >> 15) & 0x1) === 1,
opcode: opcodes.toString((flags >> 11) & 0xf),
flag_auth: ((flags >> 10) & 0x1) === 1,
flag_trunc: ((flags >> 9) & 0x1) === 1,
flag_rd: ((flags >> 8) & 0x1) === 1,
flag_ra: ((flags >> 7) & 0x1) === 1,
flag_z: ((flags >> 6) & 0x1) === 1,
flag_ad: ((flags >> 5) & 0x1) === 1,
flag_cd: ((flags >> 4) & 0x1) === 1,
rcode: rcodes.toString(flags & 0xf),
questions: new Array(buf.readUInt16BE(offset + 4)),

@@ -175,2 +195,94 @@ answers: new Array(buf.readUInt16BE(offset + 6)),

var rns = exports.ns = {}
rns.encode = function (data, buf, offset) {
if (!buf) buf = Buffer.allocUnsafe(rns.encodingLength(data))
if (!offset) offset = 0
name.encode(data, buf, offset + 2)
buf.writeUInt16BE(name.encode.bytes, offset)
rns.encode.bytes = name.encode.bytes + 2
return buf
}
rns.encode.bytes = 0
rns.decode = function (buf, offset) {
if (!offset) offset = 0
var len = buf.readUInt16BE(offset)
var dd = name.decode(buf, offset + 2)
rns.decode.bytes = len + 2
return dd
}
rns.decode.bytes = 0
rns.encodingLength = function (data) {
return name.encodingLength(data) + 2
}
var rsoa = exports.soa = {}
rsoa.encode = function (data, buf, offset) {
if (!buf) buf = Buffer.allocUnsafe(rsoa.encodingLength(data))
if (!offset) offset = 0
var oldOffset = offset
offset += 2
name.encode(data.mname, buf, offset)
offset += name.encode.bytes
name.encode(data.rname, buf, offset)
offset += name.encode.bytes
buf.writeUInt32BE(data.serial || 0, offset)
offset += 4
buf.writeUInt32BE(data.refresh || 0, offset)
offset += 4
buf.writeUInt32BE(data.retry || 0, offset)
offset += 4
buf.writeUInt32BE(data.expire || 0, offset)
offset += 4
buf.writeUInt32BE(data.minimum || 0, offset)
offset += 4
buf.writeUInt16BE(offset - oldOffset - 2, oldOffset)
rsoa.encode.bytes = offset - oldOffset
return buf
}
rsoa.encode.bytes = 0
rsoa.decode = function (buf, offset) {
if (!offset) offset = 0
var oldOffset = offset
var data = {}
offset += 2
data.mname = name.decode(buf, offset)
offset += name.decode.bytes
data.rname = name.decode(buf, offset)
offset += name.decode.bytes
data.serial = buf.readUInt32BE(offset)
offset += 4
data.refresh = buf.readUInt32BE(offset)
offset += 4
data.retry = buf.readUInt32BE(offset)
offset += 4
data.expire = buf.readUInt32BE(offset)
offset += 4
data.minimum = buf.readUInt32BE(offset)
offset += 4
rsoa.decode.bytes = offset - oldOffset
return data
}
rsoa.decode.bytes = 0
rsoa.encodingLength = function (data) {
return 22 + name.encodingLength(data.mname) + name.encodingLength(data.rname)
}
var rtxt = exports.txt = exports.null = {}

@@ -460,2 +572,4 @@ var rnull = rtxt

case 'CAA': return rcaa
case 'NS': return rns
case 'SOA': return rsoa
}

@@ -462,0 +576,0 @@ return runknown

6

package.json
{
"name": "dns-packet",
"version": "1.2.2",
"version": "1.3.0",
"description": "An abstract-encoding compliant module for encoding / decoding DNS packets",

@@ -35,3 +35,5 @@ "repository": {

"index.js",
"types.js"
"types.js",
"rcodes.js",
"opcodes.js"
],

@@ -38,0 +40,0 @@ "author": "Mathias Buus",

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc