Commit 1a372992 authored by Brickner_cp's avatar Brickner_cp

DNS

parent 39796a8b
...@@ -4,6 +4,7 @@ namespace PcapDotNet.Base ...@@ -4,6 +4,7 @@ namespace PcapDotNet.Base
{ {
public struct SerialNumber32 : IEquatable<SerialNumber32>, IComparable<SerialNumber32> public struct SerialNumber32 : IEquatable<SerialNumber32>, IComparable<SerialNumber32>
{ {
public const int SizeOf = sizeof(uint);
public const int SerialBits = 32; public const int SerialBits = 32;
public const uint MaxAdditiveNumber = ((uint)1 << (SerialBits - 1)) - 1; public const uint MaxAdditiveNumber = ((uint)1 << (SerialBits - 1)) - 1;
......
...@@ -149,6 +149,7 @@ namespace PcapDotNet.Packets.TestUtils ...@@ -149,6 +149,7 @@ namespace PcapDotNet.Packets.TestUtils
return new DnsResourceDataMailExchange(random.NextUShort(), random.NextDnsDomainName()); return new DnsResourceDataMailExchange(random.NextUShort(), random.NextDnsDomainName());
case DnsType.Txt: case DnsType.Txt:
case DnsType.Spf:
return new DnsResourceDataText(((Func<DataSegment>)(() => random.NextDataSegment(random.Next(10)))).GenerateArray(10).AsReadOnly()); return new DnsResourceDataText(((Func<DataSegment>)(() => random.NextDataSegment(random.Next(10)))).GenerateArray(10).AsReadOnly());
case DnsType.Rp: case DnsType.Rp:
...@@ -297,6 +298,11 @@ namespace PcapDotNet.Packets.TestUtils ...@@ -297,6 +298,11 @@ namespace PcapDotNet.Packets.TestUtils
case DnsType.TaLink: case DnsType.TaLink:
return new DnsResourceDataTrustAnchorLink(random.NextDnsDomainName(), random.NextDnsDomainName()); return new DnsResourceDataTrustAnchorLink(random.NextDnsDomainName(), random.NextDnsDomainName());
case DnsType.TKey:
return new DnsResourceDataTransactionKey(random.NextDnsDomainName(), random.NextUInt(), random.NextUInt(),
random.NextEnum<DnsTransactionKeyMode>(), random.NextEnum<DnsResponseCode>(),
random.NextDataSegment(random.NextInt(0, 100)), random.NextDataSegment(random.NextInt(0, 100)));
default: default:
return new DnsResourceDataAnything(random.NextDataSegment(random.Next(100))); return new DnsResourceDataAnything(random.NextDataSegment(random.Next(100)));
} }
......
...@@ -73,7 +73,7 @@ namespace PcapDotNet.Packets.Dns ...@@ -73,7 +73,7 @@ namespace PcapDotNet.Packets.Dns
public const byte IsRecusionDesired = 0x01; public const byte IsRecusionDesired = 0x01;
public const byte IsRecusionAvailable = 0x80; public const byte IsRecusionAvailable = 0x80;
public const byte FutureUse = 0x60; public const byte FutureUse = 0x60;
public const byte ResponseCode = 0x1F; public const ushort ResponseCode = 0x1F;
} }
private static class Shift private static class Shift
...@@ -327,7 +327,7 @@ namespace PcapDotNet.Packets.Dns ...@@ -327,7 +327,7 @@ namespace PcapDotNet.Packets.Dns
if (isRecursionAvailable) if (isRecursionAvailable)
flags1 |= Mask.IsRecusionAvailable; flags1 |= Mask.IsRecusionAvailable;
flags1 |= (byte)((futureUse << Shift.FutureUse) & Mask.FutureUse); flags1 |= (byte)((futureUse << Shift.FutureUse) & Mask.FutureUse);
flags1 |= (byte)((byte)responseCode & Mask.ResponseCode); flags1 |= (byte)((ushort)responseCode & Mask.ResponseCode);
buffer.Write(offset + Offset.IsRecusionAvailable, flags1); buffer.Write(offset + Offset.IsRecusionAvailable, flags1);
DnsDomainNameCompressionData compressionData = new DnsDomainNameCompressionData(domainNameCompressionMode); DnsDomainNameCompressionData compressionData = new DnsDomainNameCompressionData(domainNameCompressionMode);
int recordOffset = HeaderLength; int recordOffset = HeaderLength;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
/// <summary> /// <summary>
/// RFCs 1035, 2136, 2671, 2845, 2930, 4635. /// RFCs 1035, 2136, 2671, 2845, 2930, 4635.
/// </summary> /// </summary>
public enum DnsResponseCode : byte public enum DnsResponseCode : ushort
{ {
/// <summary> /// <summary>
/// RFC 1035. /// RFC 1035.
......
...@@ -407,32 +407,39 @@ ...@@ -407,32 +407,39 @@
/// <summary> /// <summary>
/// RFC 4408. /// RFC 4408.
/// Sender Policy Framework.
/// Payload type: DnsResourceDataText.
/// </summary> /// </summary>
Spf = 99, Spf = 99,
/// <summary> /// <summary>
/// IANA-Reserved. /// IANA-Reserved.
/// Not documented.
/// </summary> /// </summary>
UInfo = 100, UInfo = 100,
/// <summary> /// <summary>
/// IANA-Reserved. /// IANA-Reserved.
/// Not documented.
/// </summary> /// </summary>
Uid = 101, Uid = 101,
/// <summary> /// <summary>
/// IANA-Reserved. /// IANA-Reserved.
/// Not documented.
/// </summary> /// </summary>
Gid = 102, Gid = 102,
/// <summary> /// <summary>
/// IANA-Reserved. /// IANA-Reserved.
/// Not documented.
/// </summary> /// </summary>
UnSpec = 103, UnSpec = 103,
/// <summary> /// <summary>
/// RFC 2930. /// RFC 2930.
/// Transaction Key. /// Transaction Key.
/// Payload type: DnsResourceDataTransactionKey.
/// </summary> /// </summary>
TKey = 249, TKey = 249,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment