Commit b3807c73 authored by Brickner_cp's avatar Brickner_cp

DNS

parent db7acd85
...@@ -287,6 +287,9 @@ namespace PcapDotNet.Packets.TestUtils ...@@ -287,6 +287,9 @@ namespace PcapDotNet.Packets.TestUtils
random.NextDataSegment(random.NextInt(0, 100)), random.NextDataSegment(random.NextInt(0, 100)),
((Func<DnsDomainName>)(() => random.NextDnsDomainName())).GenerateArray(random.NextInt(0, 10))); ((Func<DnsDomainName>)(() => random.NextDnsDomainName())).GenerateArray(random.NextInt(0, 10)));
case DnsType.NInfo:
return new DnsResourceDataNInfo(((Func<DataSegment>)(() => random.NextDataSegment(random.NextInt(1, 10)))).GenerateArray(10).AsReadOnly());
default: default:
return new DnsResourceDataAnything(random.NextDataSegment(random.Next(100))); return new DnsResourceDataAnything(random.NextDataSegment(random.Next(100)));
} }
......
...@@ -5887,4 +5887,43 @@ namespace PcapDotNet.Packets.Dns ...@@ -5887,4 +5887,43 @@ namespace PcapDotNet.Packets.Dns
return new DnsResourceDataHostIdentityProtocol(hostIdentityTag, publicKeyAlgorithm, publicKey, rendezvousServers); return new DnsResourceDataHostIdentityProtocol(hostIdentityTag, publicKeyAlgorithm, publicKey, rendezvousServers);
} }
} }
/// <summary>
/// <pre>
/// +---------------------+
/// | One ore more strings|
/// +---------------------+
/// </pre>
/// </summary>
[DnsTypeRegistration(Type = DnsType.NInfo)]
public sealed class DnsResourceDataNInfo : DnsResourceDataStrings
{
private const int MinNumStrings = 1;
public DnsResourceDataNInfo(ReadOnlyCollection<DataSegment> strings)
: base(strings)
{
if (strings.Count < MinNumStrings)
throw new ArgumentOutOfRangeException("strings", strings.Count, "There must be at least one string.");
}
public DnsResourceDataNInfo(params DataSegment[] strings)
: this(strings.AsReadOnly())
{
}
internal DnsResourceDataNInfo()
: this(DataSegment.Empty)
{
}
internal override DnsResourceData CreateInstance(DataSegment data)
{
List<DataSegment> strings = ReadStrings(data, MinNumStrings);
if (strings == null || strings.Count < 1)
return null;
return new DnsResourceDataNInfo(strings.AsReadOnly());
}
}
} }
...@@ -379,6 +379,7 @@ ...@@ -379,6 +379,7 @@
/// <summary> /// <summary>
/// Reid. /// Reid.
/// NINFO. /// NINFO.
/// Payload type: DnsResourceDataNInfo.
/// </summary> /// </summary>
NInfo = 56, NInfo = 56,
......
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