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
8fdadb17
Unverified
Commit
8fdadb17
authored
May 12, 2018
by
justcoding121
Committed by
GitHub
May 12, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #437 from justcoding121/master
Cache key fixes
parents
ba234a9c
d329afdd
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
106 additions
and
63 deletions
+106
-63
TcpConnectionFactory.cs
Titanium.Web.Proxy/Network/Tcp/TcpConnectionFactory.cs
+9
-2
Titanium.Web.Proxy.EventArguments.SessionEventArgs.html
...i/Titanium.Web.Proxy.EventArguments.SessionEventArgs.html
+48
-12
index.json
docs/index.json
+1
-1
xrefmap.yml
docs/xrefmap.yml
+48
-48
No files found.
Titanium.Web.Proxy/Network/Tcp/TcpConnectionFactory.cs
View file @
8fdadb17
...
@@ -46,9 +46,16 @@ namespace Titanium.Web.Proxy.Network.Tcp
...
@@ -46,9 +46,16 @@ namespace Titanium.Web.Proxy.Network.Tcp
Version
httpVersion
,
bool
isHttps
,
List
<
SslApplicationProtocol
>
applicationProtocols
,
bool
isConnect
,
Version
httpVersion
,
bool
isHttps
,
List
<
SslApplicationProtocol
>
applicationProtocols
,
bool
isConnect
,
ProxyServer
proxyServer
,
IPEndPoint
upStreamEndPoint
,
ExternalProxy
externalProxy
)
ProxyServer
proxyServer
,
IPEndPoint
upStreamEndPoint
,
ExternalProxy
externalProxy
)
{
{
//http version is ignored since its an application level decision b/w HTTP 1.0/1.1
//also when doing connect request MS Edge browser sends http 1.0 but uses 1.1 after server sends 1.1 its response.
//That can create cache miss for same server connection unneccessarily expecially when prefetcing with Connect.
//http version 2 is separated using applicationProtocols below.
var
cacheKeyBuilder
=
new
StringBuilder
(
$"
{
remoteHostName
}
-
{
remotePort
}
"
+
var
cacheKeyBuilder
=
new
StringBuilder
(
$"
{
remoteHostName
}
-
{
remotePort
}
"
+
$"-
{(
httpVersion
==
null
?
string
.
Empty
:
httpVersion
.
ToString
())}
"
+
//when creating Tcp client if isHttps is true then isConnect won't matter
$"-
{
isHttps
}
-
{
isConnect
}
-"
);
//using {isHttps||isConnect} will prevent getting different cacheKeys
//in Explicit client handler for prefetch and in Request handler
//when checking for changed cache key!
$"-
{
isHttps
}
-
{
isHttps
||
isConnect
}
-"
);
if
(
applicationProtocols
!=
null
)
if
(
applicationProtocols
!=
null
)
{
{
foreach
(
var
protocol
in
applicationProtocols
)
foreach
(
var
protocol
in
applicationProtocols
)
...
...
docs/api/Titanium.Web.Proxy.EventArguments.SessionEventArgs.html
View file @
8fdadb17
This diff is collapsed.
Click to expand it.
docs/index.json
View file @
8fdadb17
This diff is collapsed.
Click to expand it.
docs/xrefmap.yml
View file @
8fdadb17
This diff is collapsed.
Click to expand it.
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