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
f5298575
Commit
f5298575
authored
Nov 17, 2019
by
Honfika
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
less exceptions
parent
5ec93000
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
44 additions
and
44 deletions
+44
-44
ExplicitClientHandler.cs
src/Titanium.Web.Proxy/ExplicitClientHandler.cs
+0
-5
HttpStream.cs
src/Titanium.Web.Proxy/Helpers/HttpStream.cs
+43
-33
TcpServerConnection.cs
src/Titanium.Web.Proxy/Network/Tcp/TcpServerConnection.cs
+1
-1
TransparentClientHandler.cs
src/Titanium.Web.Proxy/TransparentClientHandler.cs
+0
-5
No files found.
src/Titanium.Web.Proxy/ExplicitClientHandler.cs
View file @
f5298575
...
...
@@ -385,11 +385,6 @@ namespace Titanium.Web.Proxy
sslStream
?.
Dispose
();
clientStream
.
Dispose
();
if
(!
cancellationTokenSource
.
IsCancellationRequested
)
{
cancellationTokenSource
.
Cancel
();
}
}
}
}
...
...
src/Titanium.Web.Proxy/Helpers/HttpStream.cs
View file @
f5298575
...
...
@@ -17,6 +17,7 @@ namespace Titanium.Web.Proxy.Helpers
{
internal
class
HttpStream
:
Stream
,
IHttpStreamWriter
,
IHttpStreamReader
,
IPeekStream
{
private
readonly
bool
swallowException
;
private
readonly
bool
leaveOpen
;
private
readonly
byte
[]
streamBuffer
;
...
...
@@ -38,7 +39,7 @@ namespace Titanium.Web.Proxy.Helpers
public
event
EventHandler
<
DataEventArgs
>?
DataWrite
;
p
ublic
Stream
B
aseStream
{
get
;
}
p
rivate
Stream
b
aseStream
{
get
;
}
public
bool
IsClosed
=>
closed
;
...
...
@@ -70,7 +71,12 @@ namespace Titanium.Web.Proxy.Helpers
/// <param name="leaveOpen"><see langword="true" /> to leave the stream open after disposing the <see cref="T:CustomBufferedStream" /> object; otherwise, <see langword="false" />.</param>
internal
HttpStream
(
Stream
baseStream
,
IBufferPool
bufferPool
,
bool
leaveOpen
=
false
)
{
BaseStream
=
baseStream
;
if
(
baseStream
is
NetworkStream
)
{
swallowException
=
true
;
}
this
.
baseStream
=
baseStream
;
this
.
leaveOpen
=
leaveOpen
;
streamBuffer
=
bufferPool
.
GetBuffer
();
this
.
bufferPool
=
bufferPool
;
...
...
@@ -81,7 +87,7 @@ namespace Titanium.Web.Proxy.Helpers
/// </summary>
public
override
void
Flush
()
{
B
aseStream
.
Flush
();
b
aseStream
.
Flush
();
}
/// <summary>
...
...
@@ -96,7 +102,7 @@ namespace Titanium.Web.Proxy.Helpers
{
bufferLength
=
0
;
bufferPos
=
0
;
return
B
aseStream
.
Seek
(
offset
,
origin
);
return
b
aseStream
.
Seek
(
offset
,
origin
);
}
/// <summary>
...
...
@@ -105,7 +111,7 @@ namespace Titanium.Web.Proxy.Helpers
/// <param name="value">The desired length of the current stream in bytes.</param>
public
override
void
SetLength
(
long
value
)
{
B
aseStream
.
SetLength
(
value
);
b
aseStream
.
SetLength
(
value
);
}
/// <summary>
...
...
@@ -145,7 +151,7 @@ namespace Titanium.Web.Proxy.Helpers
public
override
void
Write
(
byte
[]
buffer
,
int
offset
,
int
count
)
{
OnDataWrite
(
buffer
,
offset
,
count
);
B
aseStream
.
Write
(
buffer
,
offset
,
count
);
b
aseStream
.
Write
(
buffer
,
offset
,
count
);
}
/// <summary>
...
...
@@ -178,7 +184,7 @@ namespace Titanium.Web.Proxy.Helpers
/// </returns>
public
override
Task
FlushAsync
(
CancellationToken
cancellationToken
)
{
return
B
aseStream
.
FlushAsync
(
cancellationToken
);
return
b
aseStream
.
FlushAsync
(
cancellationToken
);
}
/// <summary>
...
...
@@ -385,8 +391,7 @@ namespace Titanium.Web.Proxy.Helpers
public
override
async
Task
WriteAsync
(
byte
[]
buffer
,
int
offset
,
int
count
,
CancellationToken
cancellationToken
)
{
OnDataWrite
(
buffer
,
offset
,
count
);
await
BaseStream
.
WriteAsync
(
buffer
,
offset
,
count
,
cancellationToken
);
await
baseStream
.
WriteAsync
(
buffer
,
offset
,
count
,
cancellationToken
);
}
/// <summary>
...
...
@@ -400,7 +405,7 @@ namespace Titanium.Web.Proxy.Helpers
{
buffer
[
0
]
=
value
;
OnDataWrite
(
buffer
,
0
,
1
);
B
aseStream
.
Write
(
buffer
,
0
,
1
);
b
aseStream
.
Write
(
buffer
,
0
,
1
);
}
finally
{
...
...
@@ -430,7 +435,7 @@ namespace Titanium.Web.Proxy.Helpers
closed
=
true
;
if
(!
leaveOpen
)
{
B
aseStream
.
Dispose
();
b
aseStream
.
Dispose
();
}
bufferPool
.
ReturnBuffer
(
streamBuffer
);
...
...
@@ -440,27 +445,27 @@ namespace Titanium.Web.Proxy.Helpers
/// <summary>
/// When overridden in a derived class, gets a value indicating whether the current stream supports reading.
/// </summary>
public
override
bool
CanRead
=>
B
aseStream
.
CanRead
;
public
override
bool
CanRead
=>
b
aseStream
.
CanRead
;
/// <summary>
/// When overridden in a derived class, gets a value indicating whether the current stream supports seeking.
/// </summary>
public
override
bool
CanSeek
=>
B
aseStream
.
CanSeek
;
public
override
bool
CanSeek
=>
b
aseStream
.
CanSeek
;
/// <summary>
/// When overridden in a derived class, gets a value indicating whether the current stream supports writing.
/// </summary>
public
override
bool
CanWrite
=>
B
aseStream
.
CanWrite
;
public
override
bool
CanWrite
=>
b
aseStream
.
CanWrite
;
/// <summary>
/// Gets a value that determines whether the current stream can time out.
/// </summary>
public
override
bool
CanTimeout
=>
B
aseStream
.
CanTimeout
;
public
override
bool
CanTimeout
=>
b
aseStream
.
CanTimeout
;
/// <summary>
/// When overridden in a derived class, gets the length in bytes of the stream.
/// </summary>
public
override
long
Length
=>
B
aseStream
.
Length
;
public
override
long
Length
=>
b
aseStream
.
Length
;
/// <summary>
/// Gets a value indicating whether data is available.
...
...
@@ -477,8 +482,8 @@ namespace Titanium.Web.Proxy.Helpers
/// </summary>
public
override
long
Position
{
get
=>
B
aseStream
.
Position
;
set
=>
B
aseStream
.
Position
=
value
;
get
=>
b
aseStream
.
Position
;
set
=>
b
aseStream
.
Position
=
value
;
}
/// <summary>
...
...
@@ -486,8 +491,8 @@ namespace Titanium.Web.Proxy.Helpers
/// </summary>
public
override
int
ReadTimeout
{
get
=>
B
aseStream
.
ReadTimeout
;
set
=>
B
aseStream
.
ReadTimeout
=
value
;
get
=>
b
aseStream
.
ReadTimeout
;
set
=>
b
aseStream
.
ReadTimeout
=
value
;
}
/// <summary>
...
...
@@ -495,8 +500,8 @@ namespace Titanium.Web.Proxy.Helpers
/// </summary>
public
override
int
WriteTimeout
{
get
=>
B
aseStream
.
WriteTimeout
;
set
=>
B
aseStream
.
WriteTimeout
=
value
;
get
=>
b
aseStream
.
WriteTimeout
;
set
=>
b
aseStream
.
WriteTimeout
=
value
;
}
/// <summary>
...
...
@@ -521,7 +526,7 @@ namespace Titanium.Web.Proxy.Helpers
bool
result
=
false
;
try
{
int
readBytes
=
B
aseStream
.
Read
(
streamBuffer
,
bufferLength
,
streamBuffer
.
Length
-
bufferLength
);
int
readBytes
=
b
aseStream
.
Read
(
streamBuffer
,
bufferLength
,
streamBuffer
.
Length
-
bufferLength
);
result
=
readBytes
>
0
;
if
(
result
)
{
...
...
@@ -571,7 +576,7 @@ namespace Titanium.Web.Proxy.Helpers
bool
result
=
false
;
try
{
int
readBytes
=
await
B
aseStream
.
ReadAsync
(
streamBuffer
,
bufferLength
,
bytesToRead
,
cancellationToken
);
int
readBytes
=
await
b
aseStream
.
ReadAsync
(
streamBuffer
,
bufferLength
,
bytesToRead
,
cancellationToken
);
result
=
readBytes
>
0
;
if
(
result
)
{
...
...
@@ -579,6 +584,11 @@ namespace Titanium.Web.Proxy.Helpers
bufferLength
+=
readBytes
;
}
}
catch
{
if
(!
swallowException
)
throw
;
}
finally
{
if
(!
result
)
...
...
@@ -785,7 +795,7 @@ namespace Titanium.Web.Proxy.Helpers
idx
+=
newLineChars
;
}
await
B
aseStream
.
WriteAsync
(
buffer
,
0
,
idx
,
cancellationToken
);
await
b
aseStream
.
WriteAsync
(
buffer
,
0
,
idx
,
cancellationToken
);
}
finally
{
...
...
@@ -802,7 +812,7 @@ namespace Titanium.Web.Proxy.Helpers
idx
+=
newLineChars
;
}
await
B
aseStream
.
WriteAsync
(
buffer
,
0
,
idx
,
cancellationToken
);
await
b
aseStream
.
WriteAsync
(
buffer
,
0
,
idx
,
cancellationToken
);
}
}
...
...
@@ -831,20 +841,20 @@ namespace Titanium.Web.Proxy.Helpers
/// <param name="cancellationToken">The cancellation token.</param>
internal
async
Task
WriteAsync
(
byte
[]
data
,
bool
flush
=
false
,
CancellationToken
cancellationToken
=
default
)
{
await
B
aseStream
.
WriteAsync
(
data
,
0
,
data
.
Length
,
cancellationToken
);
await
b
aseStream
.
WriteAsync
(
data
,
0
,
data
.
Length
,
cancellationToken
);
if
(
flush
)
{
await
B
aseStream
.
FlushAsync
(
cancellationToken
);
await
b
aseStream
.
FlushAsync
(
cancellationToken
);
}
}
internal
async
Task
WriteAsync
(
byte
[]
data
,
int
offset
,
int
count
,
bool
flush
,
CancellationToken
cancellationToken
=
default
)
{
await
B
aseStream
.
WriteAsync
(
data
,
offset
,
count
,
cancellationToken
);
await
b
aseStream
.
WriteAsync
(
data
,
offset
,
count
,
cancellationToken
);
if
(
flush
)
{
await
B
aseStream
.
FlushAsync
(
cancellationToken
);
await
b
aseStream
.
FlushAsync
(
cancellationToken
);
}
}
...
...
@@ -985,7 +995,7 @@ namespace Titanium.Web.Proxy.Helpers
remainingBytes
-=
bytesRead
;
await
B
aseStream
.
WriteAsync
(
buffer
,
0
,
bytesRead
,
cancellationToken
);
await
b
aseStream
.
WriteAsync
(
buffer
,
0
,
bytesRead
,
cancellationToken
);
onCopy
?.
Invoke
(
buffer
,
0
,
bytesRead
);
}
...
...
@@ -1024,7 +1034,7 @@ namespace Titanium.Web.Proxy.Helpers
/// <returns>A task that represents the asynchronous write operation.</returns>
public
override
ValueTask
WriteAsync
(
ReadOnlyMemory
<
byte
>
buffer
,
CancellationToken
cancellationToken
=
default
)
{
return
B
aseStream
.
WriteAsync
(
buffer
,
cancellationToken
);
return
b
aseStream
.
WriteAsync
(
buffer
,
cancellationToken
);
}
#else
/// <summary>
...
...
@@ -1037,7 +1047,7 @@ namespace Titanium.Web.Proxy.Helpers
{
var
buf
=
ArrayPool
<
byte
>.
Shared
.
Rent
(
buffer
.
Length
);
buffer
.
CopyTo
(
buf
);
return
B
aseStream
.
WriteAsync
(
buf
,
0
,
buf
.
Length
,
cancellationToken
);
return
b
aseStream
.
WriteAsync
(
buf
,
0
,
buf
.
Length
,
cancellationToken
);
}
#endif
}
...
...
src/Titanium.Web.Proxy/Network/Tcp/TcpServerConnection.cs
View file @
f5298575
...
...
@@ -99,7 +99,7 @@ namespace Titanium.Web.Proxy.Network.Tcp
// This way we can push tcp Time_Wait to server side when possible.
await
Task
.
Delay
(
1000
);
proxyServer
.
UpdateServerConnectionCount
(
false
);
Stream
.
BaseStream
?.
Dispose
();
Stream
.
Dispose
();
TcpClient
.
CloseSocket
();
});
...
...
src/Titanium.Web.Proxy/TransparentClientHandler.cs
View file @
f5298575
...
...
@@ -152,11 +152,6 @@ namespace Titanium.Web.Proxy
{
sslStream
?.
Dispose
();
clientStream
.
Dispose
();
if
(!
cancellationTokenSource
.
IsCancellationRequested
)
{
cancellationTokenSource
.
Cancel
();
}
}
}
}
...
...
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