Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
P
Pcap-Net
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
Pcap-Net
Commits
d54cd6d8
Commit
d54cd6d8
authored
Aug 26, 2011
by
Brickner_cp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
DNS
parent
94b0132a
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
63 additions
and
0 deletions
+63
-0
DnsTests.cs
PcapDotNet/src/PcapDotNet.Packets.Test/DnsTests.cs
+63
-0
No files found.
PcapDotNet/src/PcapDotNet.Packets.Test/DnsTests.cs
View file @
d54cd6d8
...
@@ -77,6 +77,46 @@ namespace PcapDotNet.Packets.Test
...
@@ -77,6 +77,46 @@ namespace PcapDotNet.Packets.Test
}
}
}
}
[
TestMethod
]
public
void
DnsDomainNameCompressionTest
()
{
DnsLayer
dnsLayer
=
new
DnsLayer
();
TestDomainNameCompression
(
0
,
dnsLayer
);
dnsLayer
.
Queries
=
new
List
<
DnsQueryResourceRecord
>();
dnsLayer
.
Answers
=
new
List
<
DnsDataResourceRecord
>();
dnsLayer
.
Authorities
=
new
List
<
DnsDataResourceRecord
>();
dnsLayer
.
Additionals
=
new
List
<
DnsDataResourceRecord
>();
TestDomainNameCompression
(
0
,
dnsLayer
);
dnsLayer
.
Queries
.
Add
(
new
DnsQueryResourceRecord
(
new
DnsDomainName
(
""
),
DnsType
.
All
,
DnsClass
.
In
));
TestDomainNameCompression
(
0
,
dnsLayer
);
dnsLayer
.
Answers
.
Add
(
new
DnsDataResourceRecord
(
new
DnsDomainName
(
""
),
DnsType
.
All
,
DnsClass
.
In
,
100
,
new
DnsResourceDataUnknown
(
new
DataSegment
(
new
byte
[
0
]))));
TestDomainNameCompression
(
0
,
dnsLayer
);
dnsLayer
.
Answers
.
Add
(
new
DnsDataResourceRecord
(
new
DnsDomainName
(
"abc"
),
DnsType
.
All
,
DnsClass
.
In
,
100
,
new
DnsResourceDataUnknown
(
new
DataSegment
(
new
byte
[
0
]))));
TestDomainNameCompression
(
0
,
dnsLayer
);
dnsLayer
.
Answers
.
Add
(
new
DnsDataResourceRecord
(
new
DnsDomainName
(
"abc"
),
DnsType
.
All
,
DnsClass
.
In
,
100
,
new
DnsResourceDataUnknown
(
new
DataSegment
(
new
byte
[
0
]))));
TestDomainNameCompression
(
3
,
dnsLayer
);
dnsLayer
.
Answers
.
Add
(
new
DnsDataResourceRecord
(
new
DnsDomainName
(
"def.abc"
),
DnsType
.
All
,
DnsClass
.
In
,
100
,
new
DnsResourceDataUnknown
(
new
DataSegment
(
new
byte
[
0
]))));
TestDomainNameCompression
(
6
,
dnsLayer
);
dnsLayer
.
Answers
.
Add
(
new
DnsDataResourceRecord
(
new
DnsDomainName
(
"abc.def"
),
DnsType
.
All
,
DnsClass
.
In
,
100
,
new
DnsResourceDataUnknown
(
new
DataSegment
(
new
byte
[
0
]))));
TestDomainNameCompression
(
6
,
dnsLayer
);
dnsLayer
.
Authorities
.
Add
(
new
DnsDataResourceRecord
(
new
DnsDomainName
(
"abc.def"
),
DnsType
.
All
,
DnsClass
.
In
,
100
,
new
DnsResourceDataUnknown
(
new
DataSegment
(
new
byte
[
0
]))));
TestDomainNameCompression
(
13
,
dnsLayer
);
dnsLayer
.
Authorities
.
Add
(
new
DnsDataResourceRecord
(
new
DnsDomainName
(
"abd.def"
),
DnsType
.
All
,
DnsClass
.
In
,
100
,
new
DnsResourceDataUnknown
(
new
DataSegment
(
new
byte
[
0
]))));
TestDomainNameCompression
(
16
,
dnsLayer
);
dnsLayer
.
Additionals
.
Add
(
new
DnsDataResourceRecord
(
new
DnsDomainName
(
"hello.abd.def"
),
DnsType
.
All
,
DnsClass
.
In
,
100
,
new
DnsResourceDataUnknown
(
new
DataSegment
(
new
byte
[
0
]))));
TestDomainNameCompression
(
23
,
dnsLayer
);
}
[
TestMethod
]
[
TestMethod
]
public
void
SimpleDnsTest
()
public
void
SimpleDnsTest
()
{
{
...
@@ -125,5 +165,28 @@ namespace PcapDotNet.Packets.Test
...
@@ -125,5 +165,28 @@ namespace PcapDotNet.Packets.Test
// DNS
// DNS
Assert
.
AreEqual
(
dnsLayer
,
packet
.
Ethernet
.
IpV4
.
Udp
.
Dns
.
ExtractLayer
(),
"DNS Layer"
);
Assert
.
AreEqual
(
dnsLayer
,
packet
.
Ethernet
.
IpV4
.
Udp
.
Dns
.
ExtractLayer
(),
"DNS Layer"
);
}
}
private
static
void
TestDomainNameCompression
(
int
expectedCompressionBenefit
,
DnsLayer
dnsLayer
)
{
dnsLayer
.
DomainNameCompressionMode
=
DnsDomainNameCompressionMode
.
Nothing
;
Packet
uncompressedPacket
=
PacketBuilder
.
Build
(
DateTime
.
Now
,
new
EthernetLayer
(),
new
IpV4Layer
(),
new
UdpLayer
(),
dnsLayer
);
Assert
.
IsTrue
(
uncompressedPacket
.
IsValid
,
"IsValid"
);
ILayer
uncompressedPacketLayer
=
uncompressedPacket
.
Ethernet
.
IpV4
.
Udp
.
Dns
.
ExtractLayer
();
dnsLayer
.
DomainNameCompressionMode
=
DnsDomainNameCompressionMode
.
All
;
Packet
compressedPacket
=
PacketBuilder
.
Build
(
DateTime
.
Now
,
new
EthernetLayer
(),
new
IpV4Layer
(),
new
UdpLayer
(),
dnsLayer
);
Assert
.
IsTrue
(
compressedPacket
.
IsValid
,
"IsValid"
);
ILayer
compressedPacketLayer
=
compressedPacket
.
Ethernet
.
IpV4
.
Udp
.
Dns
.
ExtractLayer
();
Assert
.
AreEqual
(
dnsLayer
,
uncompressedPacketLayer
);
Assert
.
AreEqual
(
dnsLayer
,
compressedPacketLayer
);
Assert
.
AreEqual
(
compressedPacketLayer
,
uncompressedPacketLayer
);
Assert
.
AreEqual
(
uncompressedPacket
.
Length
,
compressedPacket
.
Length
+
expectedCompressionBenefit
,
expectedCompressionBenefit
.
ToString
());
}
}
}
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment