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
bc5426c5
Commit
bc5426c5
authored
Apr 01, 2012
by
Brickner_cp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Support for invalid non ASCII HTTP request URI.
parent
c51752ac
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
34 additions
and
4 deletions
+34
-4
WiresharkCompareTests.cs
PcapDotNet/src/PcapDotNet.Core.Test/WiresharkCompareTests.cs
+15
-0
HttpTests.cs
PcapDotNet/src/PcapDotNet.Packets.Test/HttpTests.cs
+17
-2
HttpParser.cs
PcapDotNet/src/PcapDotNet.Packets/Http/HttpParser.cs
+2
-2
No files found.
PcapDotNet/src/PcapDotNet.Core.Test/WiresharkCompareTests.cs
View file @
bc5426c5
...
...
@@ -125,6 +125,21 @@ namespace PcapDotNet.Core.Test
ComparePacketsToWireshark
(
packet
);
}
[
TestMethod
]
public
void
CompareHInvalidHttpRequestUriToWiresharkTest
()
{
Packet
packet
=
Packet
.
FromHexadecimalString
(
"0013f7a44dc0000c2973b9bb0800450001642736400080060000c0a80126c0002b0a12710050caa94b1f450b454950180100ae2f0000474554202f442543332542437273742"
+
"f3fefbca120485454502f312e310d0a4163636570743a20746578742f68746d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c202a2f2a0d0a52656665726572"
+
"3a20687474703a2f2f6c6f6f6b6f75742e6e65742f746573742f6972692f6d6978656e632e7068700d0a4163636570742d4c616e67756167653a20656e2d55530d0a5573657"
+
"22d4167656e743a204d6f7a696c6c612f352e302028636f6d70617469626c653b204d53494520392e303b2057696e646f7773204e5420362e313b20574f5736343b20547269"
+
"64656e742f352e30290d0a4163636570742d456e636f64696e673a20677a69702c206465666c6174650d0a486f73743a207777772e6578616d706c652e636f6d0d0a436f6e6"
+
"e656374696f6e3a204b6565702d416c6976650d0a0d0a"
,
DateTime
.
Now
,
DataLinkKind
.
Ethernet
);
ComparePacketsToWireshark
(
packet
);
}
private
enum
PacketType
{
Ethernet
,
...
...
PcapDotNet/src/PcapDotNet.Packets.Test/HttpTests.cs
View file @
bc5426c5
...
...
@@ -533,7 +533,7 @@ namespace PcapDotNet.Packets.Test
[
TestMethod
]
[
ExpectedException
(
typeof
(
ArgumentNullException
),
AllowDerivedTypes
=
false
)]
public
void
HttpCreateFieldNullEncoding
()
public
void
HttpCreateFieldNullEncoding
Test
()
{
HttpField
field
=
HttpField
.
CreateField
(
"abc"
,
"cde"
,
null
);
Assert
.
IsNull
(
field
);
...
...
@@ -542,13 +542,28 @@ namespace PcapDotNet.Packets.Test
[
TestMethod
]
[
ExpectedException
(
typeof
(
ArgumentNullException
),
AllowDerivedTypes
=
false
)]
public
void
HttpCreateFieldNullName
()
public
void
HttpCreateFieldNullName
Test
()
{
HttpField
field
=
HttpField
.
CreateField
(
null
,
"cde"
);
Assert
.
IsNull
(
field
);
Assert
.
Fail
();
}
[
TestMethod
]
public
void
HttpNonAsciiUriTest
()
{
Packet
packet
=
Packet
.
FromHexadecimalString
(
"0013f7a44dc0000c2973b9bb0800450001642736400080060000c0a80126c0002b0a12710050caa94b1f450b454950180100ae2f0000474554202f442543332542437273742"
+
"f3fefbca120485454502f312e310d0a4163636570743a20746578742f68746d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c202a2f2a0d0a52656665726572"
+
"3a20687474703a2f2f6c6f6f6b6f75742e6e65742f746573742f6972692f6d6978656e632e7068700d0a4163636570742d4c616e67756167653a20656e2d55530d0a5573657"
+
"22d4167656e743a204d6f7a696c6c612f352e302028636f6d70617469626c653b204d53494520392e303b2057696e646f7773204e5420362e313b20574f5736343b20547269"
+
"64656e742f352e30290d0a4163636570742d456e636f64696e673a20677a69702c206465666c6174650d0a486f73743a207777772e6578616d706c652e636f6d0d0a436f6e6"
+
"e656374696f6e3a204b6565702d416c6976650d0a0d0a"
,
DateTime
.
Now
,
DataLinkKind
.
Ethernet
);
Assert
.
AreEqual
(
"/D%C3%BCrst/?A"
,
((
HttpRequestDatagram
)
packet
.
Ethernet
.
IpV4
.
Tcp
.
Http
).
Uri
);
}
private
static
void
TestHttpResponse
(
string
httpString
,
HttpVersion
expectedVersion
=
null
,
uint
?
expectedStatusCode
=
null
,
string
expectedReasonPhrase
=
null
,
HttpHeader
expectedHeader
=
null
,
string
expectedBodyString
=
null
)
{
Datagram
expectedBody
=
expectedBodyString
==
null
?
null
:
new
Datagram
(
Encoding
.
ASCII
.
GetBytes
(
expectedBodyString
));
...
...
PcapDotNet/src/PcapDotNet.Packets/Http/HttpParser.cs
View file @
bc5426c5
...
...
@@ -167,8 +167,8 @@ namespace PcapDotNet.Packets.Http
}
var
range
=
Range
;
int
numChars
=
range
.
TakeWhile
(
value
=>
value
>
32
&&
value
<
127
).
Count
();
uri
=
Encoding
.
ASCII
.
GetString
(
_buffer
,
_offset
,
numChars
);
int
numChars
=
range
.
TakeWhile
(
value
=>
value
>
32
).
Count
();
uri
=
Encoding
Extensions
.
Iso88591
.
GetString
(
_buffer
,
_offset
,
numChars
);
_offset
+=
numChars
;
return
this
;
}
...
...
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