From a885e3fb2cc1f95a3069a6caf4b0d7211c19f237 Mon Sep 17 00:00:00 2001 From: Parnic Date: Thu, 2 Jan 2025 15:20:44 -0600 Subject: [PATCH] Update dist files --- dist/dns.d.ts | 3 ++- dist/dns.js | 34 ++++++++++++++-------------------- dist/dns.js.map | 2 +- 3 files changed, 17 insertions(+), 22 deletions(-) diff --git a/dist/dns.d.ts b/dist/dns.d.ts index 9ccea90..2c07ec0 100644 --- a/dist/dns.d.ts +++ b/dist/dns.d.ts @@ -33,7 +33,8 @@ export interface SrvRecord extends Record { } export interface ARecord extends Record { interface: "a"; - address: string; + address: number; + addressStr: string; } export declare function GetDNSQuestion(msg: Buffer, startOffset: number): Question; export declare function GetDNSAnswer(msg: Buffer, startOffset: number): Record | undefined; diff --git a/dist/dns.js b/dist/dns.js index fb98b5a..9a9010a 100644 --- a/dist/dns.js +++ b/dist/dns.js @@ -69,7 +69,7 @@ export function GetDNSAnswer(msg, startOffset) { offset += 2; // don't care about "class" of answer const ttlSeconds = msg.readUInt32BE(offset); offset += 4; - const remainingDataLength = msg.readUInt16BE(offset); + const rDataLength = msg.readUInt16BE(offset); offset += 2; switch (type) { case TypePtr: { @@ -79,7 +79,7 @@ export function GetDNSAnswer(msg, startOffset) { type: type, ttlSeconds: ttlSeconds, name: parsedResult.name, - endOffset: offset + remainingDataLength, + endOffset: offset + rDataLength, domain: domainResult.name, }; return ret; @@ -91,26 +91,22 @@ export function GetDNSAnswer(msg, startOffset) { type: type, ttlSeconds: ttlSeconds, name: parsedResult.name, - endOffset: offset + remainingDataLength, + endOffset: offset + rDataLength, text: textResult.name, }; return ret; } case TypeSrv: { const priority = msg.readUInt16BE(offset); - offset += 2; - const weight = msg.readUInt16BE(offset); - offset += 2; - const port = msg.readUInt16BE(offset); - offset += 2; - const targetResult = parseDnsName(msg, offset); - offset = targetResult.endOffset; + const weight = msg.readUInt16BE(offset + 2); + const port = msg.readUInt16BE(offset + 4); + const targetResult = parseDnsName(msg, offset + 6); const ret = { interface: "srv", type: type, ttlSeconds: ttlSeconds, name: parsedResult.name, - endOffset: offset, + endOffset: offset + rDataLength, priority: priority, weight: weight, port: port, @@ -120,21 +116,19 @@ export function GetDNSAnswer(msg, startOffset) { } case TypeA: { const o1 = msg.readUInt8(offset); - offset++; - const o2 = msg.readUInt8(offset); - offset++; - const o3 = msg.readUInt8(offset); - offset++; - const o4 = msg.readUInt8(offset); - offset++; - const address = `${o1.toString()}.${o2.toString()}.${o3.toString()}.${o4.toString()}`; + const o2 = msg.readUInt8(offset + 1); + const o3 = msg.readUInt8(offset + 2); + const o4 = msg.readUInt8(offset + 3); + const address = (o1 << 24) | (o2 << 16) | (o3 << 8) | (o4 << 0); + const addressStr = `${o1.toString()}.${o2.toString()}.${o3.toString()}.${o4.toString()}`; const ret = { interface: "a", type: type, ttlSeconds: ttlSeconds, name: parsedResult.name, - endOffset: offset + remainingDataLength, + endOffset: offset + rDataLength, address: address, + addressStr: addressStr, }; return ret; } diff --git a/dist/dns.js.map b/dist/dns.js.map index 3673a79..ffa3190 100644 --- a/dist/dns.js.map +++ b/dist/dns.js.map @@ -1 +1 @@ -{"version":3,"file":"dns.js","sourceRoot":"","sources":["../dns.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dns.js","sourceRoot":"","sources":["../dns.ts"],"names":[],"mappings":"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"} \ No newline at end of file