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
569da289
Commit
569da289
authored
Nov 15, 2014
by
Brickner_cp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Wireshark 1.12.1
parent
19ed36b6
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
49 additions
and
111 deletions
+49
-111
PcapDotNet.Core.Test.csproj
...tNet/src/PcapDotNet.Core.Test/PcapDotNet.Core.Test.csproj
+0
-1
TcpOptionExtensions.cs
PcapDotNet/src/PcapDotNet.Core.Test/TcpOptionExtensions.cs
+0
-90
WiresharkDatagramComparerIpV6.cs
...src/PcapDotNet.Core.Test/WiresharkDatagramComparerIpV6.cs
+3
-5
WiresharkDatagramComparerTcp.cs
.../src/PcapDotNet.Core.Test/WiresharkDatagramComparerTcp.cs
+46
-15
No files found.
PcapDotNet/src/PcapDotNet.Core.Test/PcapDotNet.Core.Test.csproj
View file @
569da289
...
...
@@ -140,7 +140,6 @@
<Compile
Include=
"MarshalingServicesTests.cs"
/>
<Compile
Include=
"NetworkInterfaceExtensionsTests.cs"
/>
<Compile
Include=
"PacketTimestampTests.cs"
/>
<Compile
Include=
"TcpOptionExtensions.cs"
/>
<Compile
Include=
"WiresharkDatagramComparer.cs"
/>
<Compile
Include=
"WiresharkDatagramComparerArp.cs"
/>
<Compile
Include=
"WiresharkDatagramComparerDns.cs"
/>
...
...
PcapDotNet/src/PcapDotNet.Core.Test/TcpOptionExtensions.cs
deleted
100644 → 0
View file @
19ed36b6
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
PcapDotNet.Base
;
using
PcapDotNet.Packets.Transport
;
namespace
PcapDotNet.Core.Test
{
internal
static
class
TcpOptionExtensions
{
public
static
string
GetWiresharkString
(
this
TcpOption
option
)
{
switch
(
option
.
OptionType
)
{
case
TcpOptionType
.
EndOfOptionList
:
return
"End of Option List (EOL)"
;
case
TcpOptionType
.
NoOperation
:
return
"No-Operation (NOP)"
;
case
TcpOptionType
.
WindowScale
:
byte
scaleFactorLog
=
((
TcpOptionWindowScale
)
option
).
ScaleFactorLog
;
return
string
.
Format
(
"Window scale: {0} (multiply by {1})"
,
scaleFactorLog
,
(
1L
<<
(
scaleFactorLog
%
32
)));
case
TcpOptionType
.
SelectiveAcknowledgmentPermitted
:
return
"SACK permitted"
;
case
TcpOptionType
.
SelectiveAcknowledgment
:
IEnumerable
<
TcpOptionSelectiveAcknowledgmentBlock
>
blocks
=
((
TcpOptionSelectiveAcknowledgment
)
option
).
Blocks
;
return
"SACK:"
+
(
blocks
.
Count
()
==
0
?
string
.
Empty
:
((
TcpOptionSelectiveAcknowledgment
)
option
).
Blocks
.
SequenceToString
(
" "
,
" "
));
case
TcpOptionType
.
Echo
:
return
"Echo: "
+
((
TcpOptionEcho
)
option
).
Info
;
case
TcpOptionType
.
EchoReply
:
return
"Echo reply: "
+
((
TcpOptionEchoReply
)
option
).
Info
;
case
TcpOptionType
.
Timestamp
:
TcpOptionTimestamp
timestampOption
=
(
TcpOptionTimestamp
)
option
;
return
"Timestamps: TSval "
+
timestampOption
.
TimestampValue
+
", TSecr "
+
timestampOption
.
TimestampEchoReply
;
case
TcpOptionType
.
ConnectionCount
:
return
"CC: "
+
((
TcpOptionConnectionCount
)
option
).
ConnectionCount
;
case
TcpOptionType
.
ConnectionCountNew
:
return
"CC.NEW: "
+
((
TcpOptionConnectionCountNew
)
option
).
ConnectionCount
;
case
TcpOptionType
.
ConnectionCountEcho
:
return
"CC.ECHO: "
+
((
TcpOptionConnectionCountEcho
)
option
).
ConnectionCount
;
case
TcpOptionType
.
Md5Signature
:
return
"TCP MD5 signature"
;
case
(
TcpOptionType
)
20
:
return
"SCPS capabilities"
+
(
option
.
Length
>=
4
?
string
.
Empty
:
" (with option length = "
+
option
.
Length
+
" bytes; should be >= 4)"
);
case
(
TcpOptionType
)
21
:
return
"Selective Negative Acknowledgement"
+
(
option
.
Length
==
6
?
string
.
Empty
:
" (with option length = "
+
option
.
Length
+
" bytes; should be 6)"
);
case
(
TcpOptionType
)
22
:
return
"SCPS record boundary"
+
(
option
.
Length
==
2
?
string
.
Empty
:
" (with option length = "
+
option
.
Length
+
" bytes; should be 2)"
);
case
(
TcpOptionType
)
23
:
return
"SCPS corruption experienced"
+
(
option
.
Length
==
2
?
string
.
Empty
:
" (with option length = "
+
option
.
Length
+
" bytes; should be 2)"
);
case
TcpOptionType
.
PartialOrderConnectionPermitted
:
// 9.
case
TcpOptionType
.
PartialOrderServiceProfile
:
// 10.
case
TcpOptionType
.
AlternateChecksumRequest
:
// 14.
case
TcpOptionType
.
AlternateChecksumData
:
// 15.
case
TcpOptionType
.
Mood
:
// 25.
return
string
.
Format
(
"Unknown (0x{0}) ({1} bytes)"
,
((
byte
)
option
.
OptionType
).
ToString
(
"x2"
),
option
.
Length
);
default
:
if
(
typeof
(
TcpOptionType
).
GetEnumValues
<
TcpOptionType
>().
Contains
(
option
.
OptionType
))
throw
new
InvalidOperationException
(
"Invalid option type "
+
option
.
OptionType
);
return
string
.
Format
(
"Unknown (0x{0}) ({1} bytes)"
,
((
byte
)
option
.
OptionType
).
ToString
(
"x2"
),
option
.
Length
);
}
}
}
}
\ No newline at end of file
PcapDotNet/src/PcapDotNet.Core.Test/WiresharkDatagramComparerIpV6.cs
View file @
569da289
...
...
@@ -220,14 +220,12 @@ namespace PcapDotNet.Core.Test
break
;
case
"ipv6.shim6"
:
// TODO:
Fix according to https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9995
// TODO:
Implement Shim6.
IpV4Protocol
nextHeader
=
_currentExtensionHeaderIndex
>
0
?
ipV6Datagram
.
ExtensionHeaders
[
_currentExtensionHeaderIndex
-
1
].
NextHeader
.
Value
:
ipV6Datagram
.
NextHeader
;
Assert
.
IsTrue
(
nextHeader
==
IpV4Protocol
.
AnyHostInternal
||
nextHeader
==
IpV4Protocol
.
Shim6
);
return
false
;
Assert
.
IsTrue
(
nextHeader
==
IpV4Protocol
.
Shim6
);
break
;
case
"ipv6.unknown_hdr"
:
Assert
.
AreEqual
(
ipV6Datagram
.
ExtensionHeaders
.
Count
(),
_currentExtensionHeaderIndex
);
...
...
PcapDotNet/src/PcapDotNet.Core.Test/WiresharkDatagramComparerTcp.cs
View file @
569da289
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Xml.Linq
;
using
Microsoft.VisualStudio.TestTools.UnitTesting
;
using
PcapDotNet.Base
;
using
PcapDotNet.Packets
;
using
PcapDotNet.Packets.Ip
;
using
PcapDotNet.Packets.IpV4
;
...
...
@@ -281,25 +283,12 @@ namespace PcapDotNet.Core.Test
switch
(
field
.
Name
())
{
case
""
:
switch
(
option
.
OptionType
)
{
case
TcpOptionType
.
SelectiveNegativeAcknowledgements
:
// TODO: Support Selective Negative Acknowledgements.
Assert
.
IsTrue
(
field
.
Show
().
StartsWith
(
option
.
GetWiresharkString
()));
field
.
AssertNoFields
();
break
;
case
(
TcpOptionType
)
78
:
// TODO: Support Riverbed.
break
;
default
:
field
.
AssertShow
(
option
.
GetWiresharkString
());
break
;
}
switch
(
option
.
OptionType
)
{
case
TcpOptionType
.
WindowScale
:
TcpOptionWindowScale
windowScale
=
(
TcpOptionWindowScale
)
option
;
byte
scaleFactorLog
=
windowScale
.
ScaleFactorLog
;
field
.
AssertShow
(
string
.
Format
(
"Window scale: {0} (multiply by {1})"
,
scaleFactorLog
,
(
1L
<<
(
scaleFactorLog
%
32
))));
foreach
(
var
subField
in
field
.
Fields
())
{
if
(
HandleOptionCommonFields
(
subField
,
option
))
...
...
@@ -322,6 +311,10 @@ namespace PcapDotNet.Core.Test
case
TcpOptionType
.
SelectiveAcknowledgment
:
var
selectiveAcknowledgmentOption
=
(
TcpOptionSelectiveAcknowledgment
)
option
;
IEnumerable
<
TcpOptionSelectiveAcknowledgmentBlock
>
blocks
=
selectiveAcknowledgmentOption
.
Blocks
;
field
.
AssertShow
(
"SACK:"
+
(
blocks
.
Count
()
==
0
?
string
.
Empty
:
((
TcpOptionSelectiveAcknowledgment
)
option
).
Blocks
.
SequenceToString
(
" "
,
" "
)));
int
blockIndex
=
0
;
foreach
(
var
subField
in
field
.
Fields
())
{
...
...
@@ -355,6 +348,7 @@ namespace PcapDotNet.Core.Test
case
TcpOptionType
.
Timestamp
:
var
timestampOption
=
(
TcpOptionTimestamp
)
option
;
field
.
AssertShow
(
"Timestamps: TSval "
+
timestampOption
.
TimestampValue
+
", TSecr "
+
timestampOption
.
TimestampEchoReply
);
foreach
(
var
subField
in
field
.
Fields
())
{
if
(
HandleOptionCommonFields
(
subField
,
option
))
...
...
@@ -490,6 +484,23 @@ namespace PcapDotNet.Core.Test
}
break
;
case
TcpOptionType
.
SelectiveAcknowledgmentPermitted
:
field
.
AssertShow
(
"SACK permitted"
);
field
.
AssertNoFields
();
break
;
case
TcpOptionType
.
SelectiveNegativeAcknowledgements
:
// TODO: Support Selective Negative Acknowledgements.
Assert
.
IsTrue
(
field
.
Show
().
StartsWith
(
"SACK permitted"
));
field
.
AssertNoFields
();
break
;
case
(
TcpOptionType
)
20
:
// TODO: Support 20.
field
.
AssertShow
(
"SCPS capabilities"
+
(
option
.
Length
>=
4
?
string
.
Empty
:
" (with option length = "
+
option
.
Length
+
" bytes; should be >= 4)"
));
break
;
case
(
TcpOptionType
)
22
:
field
.
AssertShow
(
"SCPS record boundary (with option length = "
+
option
.
Length
+
" bytes; should be 2)"
);
// TODO: Support 22.
...
...
@@ -500,8 +511,28 @@ namespace PcapDotNet.Core.Test
// TODO: Support 23.
break
;
case
(
TcpOptionType
)
30
:
// TODO: Support 30.
Assert
.
IsTrue
(
field
.
Show
().
StartsWith
(
"Multipath TCP: "
));
break
;
case
(
TcpOptionType
)
78
:
field
.
AssertShow
(
"Riverbed Transparency (with option length = "
+
option
.
Length
+
" bytes; should be 16)"
);
// TODO: Support 78 - Support Riverbed.
break
;
case
TcpOptionType
.
PartialOrderConnectionPermitted
:
// 9.
case
TcpOptionType
.
PartialOrderServiceProfile
:
// 10.
case
TcpOptionType
.
AlternateChecksumRequest
:
// 14.
case
TcpOptionType
.
AlternateChecksumData
:
// 15.
case
TcpOptionType
.
Mood
:
// 25.
field
.
AssertShow
(
string
.
Format
(
"Unknown (0x{0}) ({1} bytes)"
,
((
byte
)
option
.
OptionType
).
ToString
(
"x2"
),
option
.
Length
));
field
.
AssertNoFields
();
break
;
default
:
field
.
AssertNoFields
();
field
.
AssertShow
(
"Unknown (0x"
+
((
byte
)
option
.
OptionType
).
ToString
(
"x"
)
+
") ("
+
option
.
Length
+
" bytes)"
);
break
;
}
++
currentOptionIndex
;
...
...
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