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
43e2988d
Unverified
Commit
43e2988d
authored
Oct 15, 2019
by
honfika
Committed by
GitHub
Oct 15, 2019
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #648 from justcoding121/revert-647-beta
Reverts justcoding121/Titanium-Web-Proxy#647
parents
e2553691
c06b3e01
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
5 additions
and
61 deletions
+5
-61
RunTime.cs
src/Titanium.Web.Proxy/Helpers/RunTime.cs
+1
-59
TcpConnectionFactory.cs
src/Titanium.Web.Proxy/Network/Tcp/TcpConnectionFactory.cs
+2
-1
ProxyServer.cs
src/Titanium.Web.Proxy/ProxyServer.cs
+2
-1
No files found.
src/Titanium.Web.Proxy/Helpers/RunTime.cs
View file @
43e2988d
using
System
;
using
System.Reflection
;
using
System
;
using
System.Text
;
using
System.Runtime.InteropServices
;
using
System.Runtime.Versioning
;
namespace
Titanium.Web.Proxy.Helpers
{
...
...
@@ -43,63 +41,7 @@ namespace Titanium.Web.Proxy.Helpers
public
static
bool
IsUwpOnWindows
=>
IsWindows
&&
UwpHelper
.
IsRunningAsUwp
();
public
static
bool
IsMac
=>
isRunningOnMac
;
/// <summary>
/// Is socket reuse available to use?
/// </summary>
public
static
bool
IsSocketReuseAvailable
=>
isSocketReuseAvailable
();
private
static
bool
?
_isSocketReuseAvailable
;
private
static
bool
isSocketReuseAvailable
()
{
// use the cached value if we have one
if
(
_isSocketReuseAvailable
!=
null
)
return
_isSocketReuseAvailable
.
Value
;
try
{
if
(
IsWindows
)
{
// since we are on windows just return true
// store the result in our static object so we don't have to be bothered going through all this more than once
_isSocketReuseAvailable
=
true
;
return
true
;
}
// get the currently running framework name and version (EX: .NETFramework,Version=v4.5.1) (Ex: .NETCoreApp,Version=v2.0)
string
ver
=
Assembly
.
GetEntryAssembly
()?.
GetCustomAttribute
<
TargetFrameworkAttribute
>()?.
FrameworkName
;
if
(
ver
==
null
)
return
false
;
// play it safe if we can not figure out what the framework is
// make sure we are on .NETCoreApp
ver
=
ver
.
ToLower
();
// make everything lowercase to simplify comparison
if
(
ver
.
Contains
(
".netcoreapp"
))
{
var
versionString
=
ver
.
Replace
(
".netcoreapp,version=v"
,
""
);
var
versionArr
=
versionString
.
Split
(
'.'
);
var
majorVersion
=
Convert
.
ToInt32
(
versionArr
[
0
]);
var
result
=
majorVersion
>=
3
;
// version 3 and up supports socket reuse
// store the result in our static object so we don't have to be bothered going through all this more than once
_isSocketReuseAvailable
=
result
;
return
result
;
}
// store the result in our static object so we don't have to be bothered going through all this more than once
_isSocketReuseAvailable
=
false
;
return
false
;
}
catch
{
// store the result in our static object so we don't have to be bothered going through all this more than once
_isSocketReuseAvailable
=
false
;
return
false
;
}
}
// https://github.com/qmatteoq/DesktopBridgeHelpers/blob/master/DesktopBridge.Helpers/Helpers.cs
private
class
UwpHelper
{
...
...
src/Titanium.Web.Proxy/Network/Tcp/TcpConnectionFactory.cs
View file @
43e2988d
...
...
@@ -315,7 +315,8 @@ namespace Titanium.Web.Proxy.Network.Tcp
tcpClient
.
SendTimeout
=
proxyServer
.
ConnectionTimeOutSeconds
*
1000
;
tcpClient
.
LingerState
=
new
LingerOption
(
true
,
proxyServer
.
TcpTimeWaitSeconds
);
if
(
proxyServer
.
ReuseSocket
&&
RunTime
.
IsSocketReuseAvailable
)
// linux has a bug with socket reuse in .net core.
if
(
proxyServer
.
ReuseSocket
&&
RunTime
.
IsWindows
)
{
tcpClient
.
Client
.
SetSocketOption
(
SocketOptionLevel
.
Socket
,
SocketOptionName
.
ReuseAddress
,
true
);
}
...
...
src/Titanium.Web.Proxy/ProxyServer.cs
View file @
43e2988d
...
...
@@ -654,7 +654,8 @@ namespace Titanium.Web.Proxy
{
endPoint
.
Listener
=
new
TcpListener
(
endPoint
.
IpAddress
,
endPoint
.
Port
);
if
(
ReuseSocket
&&
RunTime
.
IsSocketReuseAvailable
)
// linux/macOS has a bug with socket reuse in .net core.
if
(
ReuseSocket
&&
RunTime
.
IsWindows
)
{
endPoint
.
Listener
.
Server
.
SetSocketOption
(
SocketOptionLevel
.
Socket
,
SocketOptionName
.
ReuseAddress
,
true
);
}
...
...
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