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
2e1fd72c
Unverified
Commit
2e1fd72c
authored
Oct 11, 2018
by
Jehonathan Thomas
Committed by
GitHub
Oct 11, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #507 from justcoding121/master
Console lock issues
parents
9fa89a12
c037b265
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
29 additions
and
40 deletions
+29
-40
ProxyTestController.cs
.../Titanium.Web.Proxy.Examples.Basic/ProxyTestController.cs
+15
-25
Titanium.Web.Proxy.Examples.Basic.csproj
...y.Examples.Basic/Titanium.Web.Proxy.Examples.Basic.csproj
+1
-1
CertificateManager.cs
src/Titanium.Web.Proxy/Network/CertificateManager.cs
+13
-14
No files found.
examples/Titanium.Web.Proxy.Examples.Basic/ProxyTestController.cs
View file @
2e1fd72c
...
...
@@ -16,9 +16,7 @@ namespace Titanium.Web.Proxy.Examples.Basic
public
class
ProxyTestController
{
private
readonly
SemaphoreSlim
@lock
=
new
SemaphoreSlim
(
1
);
private
readonly
ProxyServer
proxyServer
;
private
ExplicitProxyEndPoint
explicitEndPoint
;
public
ProxyTestController
()
...
...
@@ -32,27 +30,13 @@ namespace Titanium.Web.Proxy.Examples.Basic
proxyServer
.
ExceptionFunc
=
async
exception
=>
{
await
@lock
.
WaitAsync
();
try
if
(
exception
is
ProxyHttpException
phex
)
{
var
color
=
Console
.
ForegroundColor
;
Console
.
ForegroundColor
=
ConsoleColor
.
Red
;
if
(
exception
is
ProxyHttpException
phex
)
{
Console
.
WriteLine
(
exception
.
Message
+
": "
+
phex
.
InnerException
?.
Message
);
}
else
{
Console
.
WriteLine
(
exception
.
Message
);
}
Console
.
ForegroundColor
=
color
;
await
WriteToConsole
(
exception
.
Message
+
": "
+
phex
.
InnerException
?.
Message
,
true
);
}
finally
else
{
@lock
.
Release
(
);
await
WriteToConsole
(
exception
.
Message
,
true
);
}
};
proxyServer
.
ForwardToUpstreamGateway
=
true
;
...
...
@@ -110,7 +94,7 @@ namespace Titanium.Web.Proxy.Examples.Basic
// Only explicit proxies can be set as system proxy!
//proxyServer.SetAsSystemHttpProxy(explicitEndPoint);
//proxyServer.SetAsSystemHttpsProxy(explicitEndPoint);
if
(
RunTime
.
IsWindows
)
if
(
RunTime
.
IsWindows
)
{
proxyServer
.
SetAsSystemProxy
(
explicitEndPoint
,
ProxyProtocolType
.
AllHttp
);
}
...
...
@@ -277,18 +261,24 @@ namespace Titanium.Web.Proxy.Examples.Basic
return
Task
.
FromResult
(
0
);
}
private
async
Task
WriteToConsole
(
string
message
)
private
async
Task
WriteToConsole
(
string
message
,
bool
useRedColor
=
false
)
{
await
@lock
.
WaitAsync
();
try
if
(
useRedColor
)
{
ConsoleColor
existing
=
Console
.
ForegroundColor
;
Console
.
ForegroundColor
=
ConsoleColor
.
Red
;
Console
.
WriteLine
(
message
);
Console
.
ForegroundColor
=
existing
;
}
finally
else
{
@lock
.
Release
(
);
Console
.
WriteLine
(
message
);
}
@lock
.
Release
();
}
///// <summary>
...
...
examples/Titanium.Web.Proxy.Examples.Basic/Titanium.Web.Proxy.Examples.Basic.csproj
View file @
2e1fd72c
...
...
@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFrameworks>net45;netcoreapp2.
0
</TargetFrameworks>
<TargetFrameworks>net45;netcoreapp2.
1
</TargetFrameworks>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<LangVersion>7.1</LangVersion>
<Platforms>AnyCPU;x64</Platforms>
...
...
src/Titanium.Web.Proxy/Network/CertificateManager.cs
View file @
2e1fd72c
...
...
@@ -60,7 +60,7 @@ namespace Titanium.Web.Proxy.Network
private
X509Certificate2
rootCertificate
;
private
string
rootCertificateName
;
/// <summary>
/// Initializes a new instance of the <see cref="CertificateManager"/> class.
/// </summary>
...
...
@@ -242,7 +242,7 @@ namespace Titanium.Web.Proxy.Network
public
void
Dispose
()
{
}
private
string
getRootCertificateDirectory
()
{
string
assemblyLocation
=
Assembly
.
GetExecutingAssembly
().
Location
;
...
...
@@ -427,17 +427,16 @@ namespace Titanium.Web.Proxy.Network
certificate
=
makeCertificate
(
certificateName
,
false
);
// store as cache
Task
.
Run
(()
=>
try
{
var
exported
=
certificate
.
Export
(
X509ContentType
.
Pkcs12
);
File
.
WriteAllBytes
(
certificatePath
,
exported
);
}
catch
(
Exception
e
)
{
try
{
File
.
WriteAllBytes
(
certificatePath
,
certificate
.
Export
(
X509ContentType
.
Pkcs12
));
}
catch
(
Exception
e
)
{
ExceptionFunc
(
new
Exception
(
"Failed to save fake certificate."
,
e
));
}
});
ExceptionFunc
(
new
Exception
(
"Failed to save fake certificate."
,
e
));
}
}
else
{
...
...
@@ -530,7 +529,7 @@ namespace Titanium.Web.Proxy.Network
await
Task
.
Delay
(
1000
*
60
);
}
}
/// <summary>
/// Stops the certificate cache clear process
/// </summary>
...
...
@@ -776,7 +775,7 @@ namespace Titanium.Web.Proxy.Network
EnsureRootCertificate
();
}
/// <summary>
/// Determines whether the root certificate is trusted.
/// </summary>
...
...
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