dns-message 1.0.4 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/dns-message.d.ts +2 -0
- package/dist/dns-message.js +179 -66
- package/dist/dns-message.js.map +1 -1
- package/dist/dns-message.mjs +181 -68
- package/dist/dns-message.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# dns-message
|
|
2
2
|
|
|
3
|
+
## 1.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Add `compareAnswers` utility for lexicographic sorting
|
|
8
|
+
Submitted by [@kitten](https://github.com/kitten) (See [#15](https://github.com/kitten/dns-message/pull/15))
|
|
9
|
+
|
|
3
10
|
## 1.0.4
|
|
4
11
|
|
|
5
12
|
### Patch Changes
|
package/dist/dns-message.d.ts
CHANGED
|
@@ -423,6 +423,7 @@ type Answer =
|
|
|
423
423
|
| HttpsAnswer
|
|
424
424
|
| NullAnswer
|
|
425
425
|
| UnknownAnswer;
|
|
426
|
+
declare const compareAnswers: (a: Answer, b: Answer) => number;
|
|
426
427
|
|
|
427
428
|
interface Packet {
|
|
428
429
|
id?: number;
|
|
@@ -449,6 +450,7 @@ export {
|
|
|
449
450
|
RecordClass,
|
|
450
451
|
RecordType,
|
|
451
452
|
SvcParamCode,
|
|
453
|
+
compareAnswers,
|
|
452
454
|
decode,
|
|
453
455
|
encode,
|
|
454
456
|
encodingLength,
|
package/dist/dns-message.js
CHANGED
|
@@ -329,7 +329,7 @@ const y = {
|
|
|
329
329
|
}
|
|
330
330
|
};
|
|
331
331
|
|
|
332
|
-
const
|
|
332
|
+
const h = {
|
|
333
333
|
bytes: () => 16,
|
|
334
334
|
write(t, e, r) {
|
|
335
335
|
const n = r.indexOf("::");
|
|
@@ -419,20 +419,26 @@ const advance = (t, e) => {
|
|
|
419
419
|
t.length &= ~(t.length >> 31);
|
|
420
420
|
};
|
|
421
421
|
|
|
422
|
+
const encodeIntoBuffer = (t, e) => {
|
|
423
|
+
const r = new ArrayBuffer(t.bytes(e));
|
|
424
|
+
const n = t.write(new DataView(r), 0, e);
|
|
425
|
+
return new Uint8Array(r, 0, n);
|
|
426
|
+
};
|
|
427
|
+
|
|
422
428
|
const sliceView = (t, e, r = e.length) => {
|
|
423
429
|
const n = new Uint8Array(t.buffer, t.byteOffset + e.offset, r);
|
|
424
430
|
advance(e, r);
|
|
425
431
|
return n;
|
|
426
432
|
};
|
|
427
433
|
|
|
428
|
-
const
|
|
434
|
+
const U = 32768;
|
|
429
435
|
|
|
430
|
-
const
|
|
436
|
+
const b = {
|
|
431
437
|
bytes: t => c.bytes(t.name) + 4,
|
|
432
438
|
write(t, e, n) {
|
|
433
439
|
let s = n.class || r.IN;
|
|
434
440
|
if (n.qu) {
|
|
435
|
-
s |=
|
|
441
|
+
s |= U;
|
|
436
442
|
}
|
|
437
443
|
e = c.write(t, e, n.name);
|
|
438
444
|
t.setUint16(e, n.type);
|
|
@@ -444,7 +450,7 @@ const w = {
|
|
|
444
450
|
const s = t.getUint16(e.offset);
|
|
445
451
|
let a = t.getUint16(e.offset + 2) || r.ANY;
|
|
446
452
|
let i = !1;
|
|
447
|
-
if (a !== r.ANY && a &
|
|
453
|
+
if (a !== r.ANY && a & U) {
|
|
448
454
|
a &= -32769;
|
|
449
455
|
i = !0;
|
|
450
456
|
}
|
|
@@ -458,7 +464,7 @@ const w = {
|
|
|
458
464
|
}
|
|
459
465
|
};
|
|
460
466
|
|
|
461
|
-
let
|
|
467
|
+
let w = function(t) {
|
|
462
468
|
t[t.v4 = 1] = "v4";
|
|
463
469
|
t[t.v6 = 2] = "v6";
|
|
464
470
|
return t;
|
|
@@ -473,26 +479,22 @@ const p = withRDLength({
|
|
|
473
479
|
})
|
|
474
480
|
});
|
|
475
481
|
|
|
476
|
-
const
|
|
482
|
+
const A = "(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])";
|
|
477
483
|
|
|
478
|
-
const
|
|
484
|
+
const E = new RegExp(`^${`(?:${A}\\.){3}${A}`}$`);
|
|
479
485
|
|
|
480
486
|
const N = withRDLength({
|
|
481
487
|
bytes: t => Math.ceil((t.sourcePrefixLength || 0) / 8) + 4,
|
|
482
488
|
write(t, e, r) {
|
|
483
489
|
const n = r.sourcePrefixLength || 0;
|
|
484
490
|
const s = r.scopePrefixLength || 0;
|
|
485
|
-
const a = r.family || (
|
|
491
|
+
const a = r.family || (E.test(r.ip) ? w.v4 : w.v6);
|
|
486
492
|
const i = Math.ceil(n / 8);
|
|
487
493
|
t.setUint16(e, a);
|
|
488
494
|
t.setUint8(e + 2, n);
|
|
489
495
|
t.setUint8(e + 3, s);
|
|
490
496
|
e += 4;
|
|
491
|
-
const o = (
|
|
492
|
-
const r = new ArrayBuffer(t.bytes(e));
|
|
493
|
-
const n = t.write(new DataView(r), 0, e);
|
|
494
|
-
return new Uint8Array(r, 0, n);
|
|
495
|
-
})(a === b.v4 ? g : U, r.ip);
|
|
497
|
+
const o = encodeIntoBuffer(a === w.v4 ? g : h, r.ip);
|
|
496
498
|
for (let r = 0; r < i; r++) {
|
|
497
499
|
t.setUint8(e++, o[r]);
|
|
498
500
|
}
|
|
@@ -508,7 +510,7 @@ const N = withRDLength({
|
|
|
508
510
|
family: r,
|
|
509
511
|
sourcePrefixLength: n,
|
|
510
512
|
scopePrefixLength: a,
|
|
511
|
-
ip: r ===
|
|
513
|
+
ip: r === w.v4 ? g.read(t, e) : h.read(t, e)
|
|
512
514
|
};
|
|
513
515
|
}
|
|
514
516
|
});
|
|
@@ -657,11 +659,11 @@ const D = withRDLength(array(y));
|
|
|
657
659
|
|
|
658
660
|
const C = withRDLength(array(u));
|
|
659
661
|
|
|
660
|
-
const
|
|
662
|
+
const O = withRDLength(y);
|
|
661
663
|
|
|
662
|
-
const
|
|
664
|
+
const m = withRDLength(array(g));
|
|
663
665
|
|
|
664
|
-
const L = withRDLength(array(
|
|
666
|
+
const L = withRDLength(array(h));
|
|
665
667
|
|
|
666
668
|
const v = withRDLength(f);
|
|
667
669
|
|
|
@@ -678,10 +680,10 @@ const x = {
|
|
|
678
680
|
e += 4;
|
|
679
681
|
}
|
|
680
682
|
if (null != t.port) {
|
|
681
|
-
e +=
|
|
683
|
+
e += O.bytes(t.port) + 2;
|
|
682
684
|
}
|
|
683
685
|
if (t.ipv4hint) {
|
|
684
|
-
e +=
|
|
686
|
+
e += m.bytes(t.ipv4hint) + 2;
|
|
685
687
|
}
|
|
686
688
|
if (t.ipv6hint) {
|
|
687
689
|
e += L.bytes(t.ipv6hint) + 2;
|
|
@@ -713,11 +715,11 @@ const x = {
|
|
|
713
715
|
}
|
|
714
716
|
if (null != r.port) {
|
|
715
717
|
t.setUint16(e, R.Port);
|
|
716
|
-
e =
|
|
718
|
+
e = O.write(t, e + 2, r.port);
|
|
717
719
|
}
|
|
718
720
|
if (r.ipv4hint) {
|
|
719
721
|
t.setUint16(e, R.Ipv4Hint);
|
|
720
|
-
e =
|
|
722
|
+
e = m.write(t, e + 2, r.ipv4hint);
|
|
721
723
|
}
|
|
722
724
|
if (r.ipv6hint) {
|
|
723
725
|
t.setUint16(e, R.Ipv6Hint);
|
|
@@ -768,11 +770,11 @@ const x = {
|
|
|
768
770
|
break;
|
|
769
771
|
|
|
770
772
|
case R.Port:
|
|
771
|
-
s.port =
|
|
773
|
+
s.port = O.read(t, e);
|
|
772
774
|
break;
|
|
773
775
|
|
|
774
776
|
case R.Ipv4Hint:
|
|
775
|
-
s.ipv4hint =
|
|
777
|
+
s.ipv4hint = m.read(t, e);
|
|
776
778
|
break;
|
|
777
779
|
|
|
778
780
|
case R.Ipv6Hint:
|
|
@@ -801,15 +803,15 @@ const x = {
|
|
|
801
803
|
|
|
802
804
|
const H = withRDLength(f);
|
|
803
805
|
|
|
804
|
-
const
|
|
806
|
+
const k = withRDLength(c);
|
|
805
807
|
|
|
806
808
|
const M = withRDLength(g);
|
|
807
809
|
|
|
808
|
-
const
|
|
810
|
+
const _ = withRDLength(h);
|
|
809
811
|
|
|
810
|
-
const
|
|
812
|
+
const V = withRDLength(array(u));
|
|
811
813
|
|
|
812
|
-
const
|
|
814
|
+
const Y = withRDLength({
|
|
813
815
|
bytes: t => c.bytes(t.target) + 6,
|
|
814
816
|
write(t, e, r) {
|
|
815
817
|
t.setUint16(e, r.priority || 0);
|
|
@@ -833,7 +835,7 @@ const K = withRDLength({
|
|
|
833
835
|
}
|
|
834
836
|
});
|
|
835
837
|
|
|
836
|
-
const
|
|
838
|
+
const K = withRDLength({
|
|
837
839
|
bytes: t => u.bytes(t.cpu) + u.bytes(t.os),
|
|
838
840
|
write(t, e, r) {
|
|
839
841
|
e = u.write(t, e, r.cpu);
|
|
@@ -857,7 +859,7 @@ const toCaaTag = t => {
|
|
|
857
859
|
}
|
|
858
860
|
};
|
|
859
861
|
|
|
860
|
-
const
|
|
862
|
+
const X = withRDLength({
|
|
861
863
|
bytes: t => u.bytes(t.tag) + f.bytes(t.value) + 1,
|
|
862
864
|
write(t, e, r) {
|
|
863
865
|
let n = r.flags || 0;
|
|
@@ -880,7 +882,7 @@ const F = withRDLength({
|
|
|
880
882
|
}
|
|
881
883
|
});
|
|
882
884
|
|
|
883
|
-
const
|
|
885
|
+
const F = withRDLength({
|
|
884
886
|
bytes: t => c.bytes(t.mname) + c.bytes(t.rname) + 20,
|
|
885
887
|
write(t, e, r) {
|
|
886
888
|
e = c.write(t, e, r.mname);
|
|
@@ -908,7 +910,7 @@ const G = withRDLength({
|
|
|
908
910
|
}
|
|
909
911
|
});
|
|
910
912
|
|
|
911
|
-
const
|
|
913
|
+
const G = withRDLength({
|
|
912
914
|
bytes: t => c.bytes(t.exchange) + 2,
|
|
913
915
|
write(t, e, r) {
|
|
914
916
|
t.setUint16(e, r.preference || 0);
|
|
@@ -925,7 +927,7 @@ const B = withRDLength({
|
|
|
925
927
|
}
|
|
926
928
|
});
|
|
927
929
|
|
|
928
|
-
const
|
|
930
|
+
const B = withRDLength({
|
|
929
931
|
bytes: t => f.bytes(t.key) + 4,
|
|
930
932
|
write(t, e, r) {
|
|
931
933
|
t.setUint16(e, r.flags);
|
|
@@ -1149,28 +1151,28 @@ const nt = {
|
|
|
1149
1151
|
return r + M.bytes(t.data);
|
|
1150
1152
|
|
|
1151
1153
|
case e.NS:
|
|
1152
|
-
return r +
|
|
1154
|
+
return r + k.bytes(t.data);
|
|
1153
1155
|
|
|
1154
1156
|
case e.SOA:
|
|
1155
|
-
return r +
|
|
1157
|
+
return r + F.bytes(t.data);
|
|
1156
1158
|
|
|
1157
1159
|
case e.HINFO:
|
|
1158
|
-
return r +
|
|
1160
|
+
return r + K.bytes(t.data);
|
|
1159
1161
|
|
|
1160
1162
|
case e.MX:
|
|
1161
|
-
return r +
|
|
1163
|
+
return r + G.bytes(t.data);
|
|
1162
1164
|
|
|
1163
1165
|
case e.TXT:
|
|
1164
|
-
return r +
|
|
1166
|
+
return r + V.bytes(t.data);
|
|
1165
1167
|
|
|
1166
1168
|
case e.RP:
|
|
1167
1169
|
return r + q.bytes(t.data);
|
|
1168
1170
|
|
|
1169
1171
|
case e.AAAA:
|
|
1170
|
-
return r +
|
|
1172
|
+
return r + _.bytes(t.data);
|
|
1171
1173
|
|
|
1172
1174
|
case e.SRV:
|
|
1173
|
-
return r +
|
|
1175
|
+
return r + Y.bytes(t.data);
|
|
1174
1176
|
|
|
1175
1177
|
case e.NAPTR:
|
|
1176
1178
|
return r + Z.bytes(t.data);
|
|
@@ -1191,7 +1193,7 @@ const nt = {
|
|
|
1191
1193
|
return r + Q.bytes(t.data);
|
|
1192
1194
|
|
|
1193
1195
|
case e.DNSKEY:
|
|
1194
|
-
return r +
|
|
1196
|
+
return r + B.bytes(t.data);
|
|
1195
1197
|
|
|
1196
1198
|
case e.NSEC3:
|
|
1197
1199
|
return r + j.bytes(t.data);
|
|
@@ -1204,12 +1206,12 @@ const nt = {
|
|
|
1204
1206
|
return r + tt.bytes(t.data);
|
|
1205
1207
|
|
|
1206
1208
|
case e.CAA:
|
|
1207
|
-
return r +
|
|
1209
|
+
return r + X.bytes(t.data);
|
|
1208
1210
|
|
|
1209
1211
|
case e.PTR:
|
|
1210
1212
|
case e.CNAME:
|
|
1211
1213
|
case e.DNAME:
|
|
1212
|
-
return r +
|
|
1214
|
+
return r + k.bytes(t.data);
|
|
1213
1215
|
|
|
1214
1216
|
default:
|
|
1215
1217
|
return r + H.bytes(t.data);
|
|
@@ -1235,28 +1237,28 @@ const nt = {
|
|
|
1235
1237
|
return M.write(t, r, n.data);
|
|
1236
1238
|
|
|
1237
1239
|
case e.NS:
|
|
1238
|
-
return
|
|
1240
|
+
return k.write(t, r, n.data);
|
|
1239
1241
|
|
|
1240
1242
|
case e.SOA:
|
|
1241
|
-
return
|
|
1243
|
+
return F.write(t, r, n.data);
|
|
1242
1244
|
|
|
1243
1245
|
case e.HINFO:
|
|
1244
|
-
return
|
|
1246
|
+
return K.write(t, r, n.data);
|
|
1245
1247
|
|
|
1246
1248
|
case e.MX:
|
|
1247
|
-
return
|
|
1249
|
+
return G.write(t, r, n.data);
|
|
1248
1250
|
|
|
1249
1251
|
case e.TXT:
|
|
1250
|
-
return
|
|
1252
|
+
return V.write(t, r, n.data);
|
|
1251
1253
|
|
|
1252
1254
|
case e.RP:
|
|
1253
1255
|
return q.write(t, r, n.data);
|
|
1254
1256
|
|
|
1255
1257
|
case e.AAAA:
|
|
1256
|
-
return
|
|
1258
|
+
return _.write(t, r, n.data);
|
|
1257
1259
|
|
|
1258
1260
|
case e.SRV:
|
|
1259
|
-
return
|
|
1261
|
+
return Y.write(t, r, n.data);
|
|
1260
1262
|
|
|
1261
1263
|
case e.NAPTR:
|
|
1262
1264
|
return Z.write(t, r, n.data);
|
|
@@ -1274,7 +1276,7 @@ const nt = {
|
|
|
1274
1276
|
return Q.write(t, r, n.data);
|
|
1275
1277
|
|
|
1276
1278
|
case e.DNSKEY:
|
|
1277
|
-
return
|
|
1279
|
+
return B.write(t, r, n.data);
|
|
1278
1280
|
|
|
1279
1281
|
case e.NSEC3:
|
|
1280
1282
|
return j.write(t, r, n.data);
|
|
@@ -1287,12 +1289,12 @@ const nt = {
|
|
|
1287
1289
|
return tt.write(t, r, n.data);
|
|
1288
1290
|
|
|
1289
1291
|
case e.CAA:
|
|
1290
|
-
return
|
|
1292
|
+
return X.write(t, r, n.data);
|
|
1291
1293
|
|
|
1292
1294
|
case e.PTR:
|
|
1293
1295
|
case e.CNAME:
|
|
1294
1296
|
case e.DNAME:
|
|
1295
|
-
return
|
|
1297
|
+
return k.write(t, r, n.data);
|
|
1296
1298
|
|
|
1297
1299
|
default:
|
|
1298
1300
|
return H.write(t, r, n.data);
|
|
@@ -1333,23 +1335,23 @@ const nt = {
|
|
|
1333
1335
|
return o;
|
|
1334
1336
|
|
|
1335
1337
|
case e.NS:
|
|
1336
|
-
o.data =
|
|
1338
|
+
o.data = k.read(t, r);
|
|
1337
1339
|
return o;
|
|
1338
1340
|
|
|
1339
1341
|
case e.SOA:
|
|
1340
|
-
o.data =
|
|
1342
|
+
o.data = F.read(t, r);
|
|
1341
1343
|
return o;
|
|
1342
1344
|
|
|
1343
1345
|
case e.HINFO:
|
|
1344
|
-
o.data =
|
|
1346
|
+
o.data = K.read(t, r);
|
|
1345
1347
|
return o;
|
|
1346
1348
|
|
|
1347
1349
|
case e.MX:
|
|
1348
|
-
o.data =
|
|
1350
|
+
o.data = G.read(t, r);
|
|
1349
1351
|
return o;
|
|
1350
1352
|
|
|
1351
1353
|
case e.TXT:
|
|
1352
|
-
o.data =
|
|
1354
|
+
o.data = V.read(t, r);
|
|
1353
1355
|
return o;
|
|
1354
1356
|
|
|
1355
1357
|
case e.RP:
|
|
@@ -1357,11 +1359,11 @@ const nt = {
|
|
|
1357
1359
|
return o;
|
|
1358
1360
|
|
|
1359
1361
|
case e.AAAA:
|
|
1360
|
-
o.data =
|
|
1362
|
+
o.data = _.read(t, r);
|
|
1361
1363
|
return o;
|
|
1362
1364
|
|
|
1363
1365
|
case e.SRV:
|
|
1364
|
-
o.data =
|
|
1366
|
+
o.data = Y.read(t, r);
|
|
1365
1367
|
return o;
|
|
1366
1368
|
|
|
1367
1369
|
case e.NAPTR:
|
|
@@ -1385,7 +1387,7 @@ const nt = {
|
|
|
1385
1387
|
return o;
|
|
1386
1388
|
|
|
1387
1389
|
case e.DNSKEY:
|
|
1388
|
-
o.data =
|
|
1390
|
+
o.data = B.read(t, r);
|
|
1389
1391
|
return o;
|
|
1390
1392
|
|
|
1391
1393
|
case e.NSEC3:
|
|
@@ -1402,13 +1404,13 @@ const nt = {
|
|
|
1402
1404
|
return o;
|
|
1403
1405
|
|
|
1404
1406
|
case e.CAA:
|
|
1405
|
-
o.data =
|
|
1407
|
+
o.data = X.read(t, r);
|
|
1406
1408
|
return o;
|
|
1407
1409
|
|
|
1408
1410
|
case e.PTR:
|
|
1409
1411
|
case e.CNAME:
|
|
1410
1412
|
case e.DNAME:
|
|
1411
|
-
o.data =
|
|
1413
|
+
o.data = k.read(t, r);
|
|
1412
1414
|
return o;
|
|
1413
1415
|
|
|
1414
1416
|
default:
|
|
@@ -1436,7 +1438,7 @@ const st = {
|
|
|
1436
1438
|
let a = 12;
|
|
1437
1439
|
let i = 0;
|
|
1438
1440
|
for (i = 0; e && i < e.length; i++) {
|
|
1439
|
-
a +=
|
|
1441
|
+
a += b.bytes(e[i]);
|
|
1440
1442
|
}
|
|
1441
1443
|
for (i = 0; r && i < r.length; i++) {
|
|
1442
1444
|
a += nt.bytes(r[i]);
|
|
@@ -1461,7 +1463,7 @@ const st = {
|
|
|
1461
1463
|
r += 12;
|
|
1462
1464
|
let f = 0;
|
|
1463
1465
|
for (f = 0; s && f < s.length; f++) {
|
|
1464
|
-
r =
|
|
1466
|
+
r = b.write(e, r, s[f]);
|
|
1465
1467
|
}
|
|
1466
1468
|
for (f = 0; a && f < a.length; f++) {
|
|
1467
1469
|
r = nt.write(e, r, a[f]);
|
|
@@ -1487,7 +1489,7 @@ const st = {
|
|
|
1487
1489
|
flags: s,
|
|
1488
1490
|
rtype: 15 & s,
|
|
1489
1491
|
type: s & t.RESPONSE ? t.RESPONSE : t.QUERY,
|
|
1490
|
-
questions: readList(
|
|
1492
|
+
questions: readList(b, e, r, a),
|
|
1491
1493
|
answers: readList(nt, e, r, i),
|
|
1492
1494
|
authorities: readList(nt, e, r, o),
|
|
1493
1495
|
additionals: readList(nt, e, r, c)
|
|
@@ -1505,6 +1507,117 @@ exports.RecordClass = r;
|
|
|
1505
1507
|
|
|
1506
1508
|
exports.RecordType = e;
|
|
1507
1509
|
|
|
1510
|
+
exports.compareAnswers = (t, n) => {
|
|
1511
|
+
if (t.type === e.OPT || n.type === e.OPT) {
|
|
1512
|
+
return 0;
|
|
1513
|
+
}
|
|
1514
|
+
const s = t.class || r.IN;
|
|
1515
|
+
const a = n.class || r.IN;
|
|
1516
|
+
if (s !== a) {
|
|
1517
|
+
return s - a;
|
|
1518
|
+
} else if (t.type !== n.type) {
|
|
1519
|
+
return t.type - n.type;
|
|
1520
|
+
}
|
|
1521
|
+
let i;
|
|
1522
|
+
switch (t.type) {
|
|
1523
|
+
case e.A:
|
|
1524
|
+
i = M;
|
|
1525
|
+
break;
|
|
1526
|
+
|
|
1527
|
+
case e.NS:
|
|
1528
|
+
i = k;
|
|
1529
|
+
break;
|
|
1530
|
+
|
|
1531
|
+
case e.SOA:
|
|
1532
|
+
i = F;
|
|
1533
|
+
break;
|
|
1534
|
+
|
|
1535
|
+
case e.HINFO:
|
|
1536
|
+
i = K;
|
|
1537
|
+
break;
|
|
1538
|
+
|
|
1539
|
+
case e.MX:
|
|
1540
|
+
i = G;
|
|
1541
|
+
break;
|
|
1542
|
+
|
|
1543
|
+
case e.TXT:
|
|
1544
|
+
i = V;
|
|
1545
|
+
break;
|
|
1546
|
+
|
|
1547
|
+
case e.RP:
|
|
1548
|
+
i = q;
|
|
1549
|
+
break;
|
|
1550
|
+
|
|
1551
|
+
case e.AAAA:
|
|
1552
|
+
i = _;
|
|
1553
|
+
break;
|
|
1554
|
+
|
|
1555
|
+
case e.SRV:
|
|
1556
|
+
i = Y;
|
|
1557
|
+
break;
|
|
1558
|
+
|
|
1559
|
+
case e.NAPTR:
|
|
1560
|
+
i = Z;
|
|
1561
|
+
break;
|
|
1562
|
+
|
|
1563
|
+
case e.DS:
|
|
1564
|
+
i = W;
|
|
1565
|
+
break;
|
|
1566
|
+
|
|
1567
|
+
case e.SSHFP:
|
|
1568
|
+
i = z;
|
|
1569
|
+
break;
|
|
1570
|
+
|
|
1571
|
+
case e.RRSIG:
|
|
1572
|
+
i = $;
|
|
1573
|
+
break;
|
|
1574
|
+
|
|
1575
|
+
case e.NSEC:
|
|
1576
|
+
i = Q;
|
|
1577
|
+
break;
|
|
1578
|
+
|
|
1579
|
+
case e.DNSKEY:
|
|
1580
|
+
i = B;
|
|
1581
|
+
break;
|
|
1582
|
+
|
|
1583
|
+
case e.NSEC3:
|
|
1584
|
+
i = j;
|
|
1585
|
+
break;
|
|
1586
|
+
|
|
1587
|
+
case e.TLSA:
|
|
1588
|
+
i = J;
|
|
1589
|
+
break;
|
|
1590
|
+
|
|
1591
|
+
case e.SVCB:
|
|
1592
|
+
case e.HTTPS:
|
|
1593
|
+
i = tt;
|
|
1594
|
+
break;
|
|
1595
|
+
|
|
1596
|
+
case e.CAA:
|
|
1597
|
+
i = X;
|
|
1598
|
+
break;
|
|
1599
|
+
|
|
1600
|
+
case e.PTR:
|
|
1601
|
+
case e.CNAME:
|
|
1602
|
+
case e.DNAME:
|
|
1603
|
+
i = k;
|
|
1604
|
+
break;
|
|
1605
|
+
|
|
1606
|
+
default:
|
|
1607
|
+
i = H;
|
|
1608
|
+
}
|
|
1609
|
+
const o = encodeIntoBuffer(i, t.data);
|
|
1610
|
+
const c = encodeIntoBuffer(i, n.data);
|
|
1611
|
+
const f = o.byteLength < c.byteLength ? o.byteLength : c.byteLength;
|
|
1612
|
+
for (let t = 2; t < f; t++) {
|
|
1613
|
+
const e = o[t] - c[t];
|
|
1614
|
+
if (0 !== e) {
|
|
1615
|
+
return e < 0 ? -1 : 1;
|
|
1616
|
+
}
|
|
1617
|
+
}
|
|
1618
|
+
return o.byteLength !== c.byteLength ? o.byteLength < c.byteLength ? -1 : 1 : 0;
|
|
1619
|
+
};
|
|
1620
|
+
|
|
1508
1621
|
exports.decode = function decode(t) {
|
|
1509
1622
|
const e = "buffer" in t ? new DataView(t.buffer, t.byteOffset, t.byteLength) : new DataView(t);
|
|
1510
1623
|
return st.read(e, {
|