Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
T
Titanium-Web-Proxy
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
Titanium-Web-Proxy
Commits
6e209022
Commit
6e209022
authored
Mar 23, 2018
by
Honfika
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Call OnDataReceived/OnDataSend events when
parent
180bcd58
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
13 additions
and
8 deletions
+13
-8
SessionEventArgs.cs
Titanium.Web.Proxy/EventArguments/SessionEventArgs.cs
+2
-2
HttpWriter.cs
Titanium.Web.Proxy/Helpers/HttpWriter.cs
+11
-6
No files found.
Titanium.Web.Proxy/EventArguments/SessionEventArgs.cs
View file @
6e209022
...
...
@@ -290,7 +290,7 @@ namespace Titanium.Web.Proxy.EventArguments
}
else
{
await
writer
.
CopyBodyAsync
(
reader
,
request
.
IsChunked
,
contentLength
,
removeChunkedEncoding
);
await
writer
.
CopyBodyAsync
(
reader
,
request
.
IsChunked
,
contentLength
,
removeChunkedEncoding
,
OnDataSent
);
}
}
...
...
@@ -299,7 +299,7 @@ namespace Titanium.Web.Proxy.EventArguments
var
response
=
WebSession
.
Response
;
var
reader
=
WebSession
.
ServerConnection
.
StreamReader
;
await
writer
.
CopyBodyAsync
(
reader
,
response
.
IsChunked
,
response
.
ContentLength
,
removeChunkedEncoding
);
await
writer
.
CopyBodyAsync
(
reader
,
response
.
IsChunked
,
response
.
ContentLength
,
removeChunkedEncoding
,
OnDataReceived
);
}
/// <summary>
...
...
Titanium.Web.Proxy/Helpers/HttpWriter.cs
View file @
6e209022
...
...
@@ -153,15 +153,16 @@ namespace Titanium.Web.Proxy.Helpers
/// <param name="isChunked"></param>
/// <param name="contentLength"></param>
/// <param name="removeChunkedEncoding"></param>
/// <param name="onCopy"></param>
/// <returns></returns>
internal
Task
CopyBodyAsync
(
CustomBinaryReader
streamReader
,
bool
isChunked
,
long
contentLength
,
bool
removeChunkedEncoding
)
internal
Task
CopyBodyAsync
(
CustomBinaryReader
streamReader
,
bool
isChunked
,
long
contentLength
,
bool
removeChunkedEncoding
,
Action
<
byte
[],
int
,
int
>
onCopy
)
{
//For chunked request we need to read data as they arrive, until we reach a chunk end symbol
if
(
isChunked
)
{
//Need to revist, find any potential bugs
//send the body bytes to server in chunks
return
CopyBodyChunkedAsync
(
streamReader
,
removeChunkedEncoding
);
return
CopyBodyChunkedAsync
(
streamReader
,
removeChunkedEncoding
,
onCopy
);
}
//http 1.0
...
...
@@ -171,7 +172,7 @@ namespace Titanium.Web.Proxy.Helpers
}
//If not chunked then its easy just read the amount of bytes mentioned in content length header
return
CopyBytesFromStream
(
streamReader
,
contentLength
);
return
CopyBytesFromStream
(
streamReader
,
contentLength
,
onCopy
);
}
/// <summary>
...
...
@@ -197,8 +198,9 @@ namespace Titanium.Web.Proxy.Helpers
/// </summary>
/// <param name="reader"></param>
/// <param name="removeChunkedEncoding"></param>
/// <param name="onCopy"></param>
/// <returns></returns>
private
async
Task
CopyBodyChunkedAsync
(
CustomBinaryReader
reader
,
bool
removeChunkedEncoding
)
private
async
Task
CopyBodyChunkedAsync
(
CustomBinaryReader
reader
,
bool
removeChunkedEncoding
,
Action
<
byte
[],
int
,
int
>
onCopy
)
{
while
(
true
)
{
...
...
@@ -212,7 +214,7 @@ namespace Titanium.Web.Proxy.Helpers
if
(
chunkSize
!=
0
)
{
await
CopyBytesFromStream
(
reader
,
chunkSize
);
await
CopyBytesFromStream
(
reader
,
chunkSize
,
onCopy
);
}
if
(!
removeChunkedEncoding
)
...
...
@@ -235,8 +237,9 @@ namespace Titanium.Web.Proxy.Helpers
/// </summary>
/// <param name="reader"></param>
/// <param name="count"></param>
/// <param name="onCopy"></param>
/// <returns></returns>
private
async
Task
CopyBytesFromStream
(
CustomBinaryReader
reader
,
long
count
)
private
async
Task
CopyBytesFromStream
(
CustomBinaryReader
reader
,
long
count
,
Action
<
byte
[],
int
,
int
>
onCopy
)
{
var
buffer
=
reader
.
Buffer
;
long
remainingBytes
=
count
;
...
...
@@ -258,6 +261,8 @@ namespace Titanium.Web.Proxy.Helpers
remainingBytes
-=
bytesRead
;
await
WriteAsync
(
buffer
,
0
,
bytesRead
);
onCopy
?.
Invoke
(
buffer
,
0
,
bytesRead
);
}
}
}
...
...
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