Commit 1a372992 authored by Brickner_cp's avatar Brickner_cp

DNS

parent 39796a8b
......@@ -4,6 +4,7 @@ namespace PcapDotNet.Base
{
public struct SerialNumber32 : IEquatable<SerialNumber32>, IComparable<SerialNumber32>
{
public const int SizeOf = sizeof(uint);
public const int SerialBits = 32;
public const uint MaxAdditiveNumber = ((uint)1 << (SerialBits - 1)) - 1;
......
......@@ -149,6 +149,7 @@ namespace PcapDotNet.Packets.TestUtils
return new DnsResourceDataMailExchange(random.NextUShort(), random.NextDnsDomainName());
case DnsType.Txt:
case DnsType.Spf:
return new DnsResourceDataText(((Func<DataSegment>)(() => random.NextDataSegment(random.Next(10)))).GenerateArray(10).AsReadOnly());
case DnsType.Rp:
......@@ -297,6 +298,11 @@ namespace PcapDotNet.Packets.TestUtils
case DnsType.TaLink:
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:
return new DnsResourceDataAnything(random.NextDataSegment(random.Next(100)));
}
......
......@@ -73,7 +73,7 @@ namespace PcapDotNet.Packets.Dns
public const byte IsRecusionDesired = 0x01;
public const byte IsRecusionAvailable = 0x80;
public const byte FutureUse = 0x60;
public const byte ResponseCode = 0x1F;
public const ushort ResponseCode = 0x1F;
}
private static class Shift
......@@ -327,7 +327,7 @@ namespace PcapDotNet.Packets.Dns
if (isRecursionAvailable)
flags1 |= Mask.IsRecusionAvailable;
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);
DnsDomainNameCompressionData compressionData = new DnsDomainNameCompressionData(domainNameCompressionMode);
int recordOffset = HeaderLength;
......
......@@ -3,7 +3,7 @@
/// <summary>
/// RFCs 1035, 2136, 2671, 2845, 2930, 4635.
/// </summary>
public enum DnsResponseCode : byte
public enum DnsResponseCode : ushort
{
/// <summary>
/// RFC 1035.
......
......@@ -407,32 +407,39 @@
/// <summary>
/// RFC 4408.
/// Sender Policy Framework.
/// Payload type: DnsResourceDataText.
/// </summary>
Spf = 99,
/// <summary>
/// IANA-Reserved.
/// Not documented.
/// </summary>
UInfo = 100,
/// <summary>
/// IANA-Reserved.
/// Not documented.
/// </summary>
Uid = 101,
/// <summary>
/// IANA-Reserved.
/// Not documented.
/// </summary>
Gid = 102,
/// <summary>
/// IANA-Reserved.
/// Not documented.
/// </summary>
UnSpec = 103,
/// <summary>
/// RFC 2930.
/// Transaction Key.
/// Payload type: DnsResourceDataTransactionKey.
/// </summary>
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