Commit 6ceb7ab8 authored by Brickner_cp's avatar Brickner_cp

DNS

parent 2dce984b
...@@ -222,5 +222,32 @@ namespace PcapDotNet.Base ...@@ -222,5 +222,32 @@ namespace PcapDotNet.Base
{ {
return sequence.Count(element => element.Equals(value)); return sequence.Count(element => element.Equals(value));
} }
public static bool IsStrictOrdered<T>(this IEnumerable<T> sequence)
{
return IsStrictOrdered(sequence, element => element);
}
public static bool IsStrictOrdered<T, TKey>(this IEnumerable<T> sequence, Func<T, TKey> keySelector)
{
return IsStrictOrdered(sequence, keySelector, Comparer<TKey>.Default);
}
public static bool IsStrictOrdered<T, TKey>(this IEnumerable<T> sequence, Func<T, TKey> keySelector, IComparer<TKey> comparer)
{
if (!sequence.Any())
return true;
IEnumerable<TKey> keys = sequence.Select(keySelector);
TKey last = keys.First();
foreach (TKey key in keys.Skip(1))
{
if (comparer.Compare(last, key) >= 0)
return false;
last = key;
}
return true;
}
} }
} }
\ No newline at end of file
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Text; using System.Text;
using PcapDotNet.Base; using PcapDotNet.Base;
using PcapDotNet.Packets.Dns; using PcapDotNet.Packets.Dns;
...@@ -173,6 +174,18 @@ namespace PcapDotNet.Packets.TestUtils ...@@ -173,6 +174,18 @@ namespace PcapDotNet.Packets.TestUtils
case DnsType.Srv: case DnsType.Srv:
return new DnsResourceDataServerSelection(random.NextUShort(), random.NextUShort(), random.NextUShort(), random.NextDnsDomainName()); return new DnsResourceDataServerSelection(random.NextUShort(), random.NextUShort(), random.NextUShort(), random.NextDnsDomainName());
case DnsType.AtmA:
return new DnsResourceDataAtmAddress(random.NextEnum<DnsAtmAddressFormat>(), random.NextDataSegment(random.Next(100)));
case DnsType.NaPtr:
IEnumerable<byte> possibleFlags =
Enumerable.Range('0', '9' - '0' + 1).Concat(Enumerable.Range('a', 'z' - 'a' + 1)).Concat(Enumerable.Range('A', 'Z' - 'A' + 1)).Select(value => (byte)value);
return new DnsResourceDataNamingAuthorityPointer(
random.NextUShort(), random.NextUShort(),
new DataSegment(FuncExtensions.GenerateArray(() => random.NextValue(possibleFlags.ToArray()), 10)),
random.NextDataSegment(random.Next(100)), random.NextDataSegment(random.Next(100)),
random.NextDnsDomainName());
default: default:
return new DnsResourceDataAnything(random.NextDataSegment(random.Next(100))); return new DnsResourceDataAnything(random.NextDataSegment(random.Next(100)));
} }
......
...@@ -243,12 +243,14 @@ ...@@ -243,12 +243,14 @@
/// <summary> /// <summary>
/// ATMDOC. /// ATMDOC.
/// ATM Address. /// ATM Address.
/// Payload type: DnsResourceDataAtmAddress.
/// </summary> /// </summary>
AtmA = 34, AtmA = 34,
/// <summary> /// <summary>
/// RFCs 2168, 2915, 3403. /// RFCs 2168, 2915, 3403.
/// Naming Authority Pointer. /// Naming Authority Pointer.
/// Payload type: DnsResourceDataNamingAuthorityPointer.
/// </summary> /// </summary>
NaPtr = 35, NaPtr = 35,
......
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