Commit 583695f3 authored by Honfika's avatar Honfika

Code simplified with C# 7 features

parent 4f49c7c9
...@@ -28,8 +28,7 @@ namespace Titanium.Web.Proxy.Examples.Basic.Helpers ...@@ -28,8 +28,7 @@ namespace Titanium.Web.Proxy.Examples.Basic.Helpers
var consoleHandle = GetStdHandle(STD_INPUT_HANDLE); var consoleHandle = GetStdHandle(STD_INPUT_HANDLE);
// get current console mode // get current console mode
uint consoleMode; if (!GetConsoleMode(consoleHandle, out uint consoleMode))
if (!GetConsoleMode(consoleHandle, out consoleMode))
{ {
// ERROR: Unable to get console mode. // ERROR: Unable to get console mode.
return false; return false;
......
...@@ -28,7 +28,7 @@ namespace Titanium.Web.Proxy.Examples.Wpf ...@@ -28,7 +28,7 @@ namespace Titanium.Web.Proxy.Examples.Wpf
public SessionListItem SelectedSession public SessionListItem SelectedSession
{ {
get { return selectedSession; } get => selectedSession;
set set
{ {
if (value != selectedSession) if (value != selectedSession)
...@@ -44,8 +44,8 @@ namespace Titanium.Web.Proxy.Examples.Wpf ...@@ -44,8 +44,8 @@ namespace Titanium.Web.Proxy.Examples.Wpf
public int ClientConnectionCount public int ClientConnectionCount
{ {
get { return (int)GetValue(ClientConnectionCountProperty); } get => (int)GetValue(ClientConnectionCountProperty);
set { SetValue(ClientConnectionCountProperty, value); } set => SetValue(ClientConnectionCountProperty, value);
} }
public static readonly DependencyProperty ServerConnectionCountProperty = DependencyProperty.Register( public static readonly DependencyProperty ServerConnectionCountProperty = DependencyProperty.Register(
...@@ -53,8 +53,8 @@ namespace Titanium.Web.Proxy.Examples.Wpf ...@@ -53,8 +53,8 @@ namespace Titanium.Web.Proxy.Examples.Wpf
public int ServerConnectionCount public int ServerConnectionCount
{ {
get { return (int)GetValue(ServerConnectionCountProperty); } get => (int)GetValue(ServerConnectionCountProperty);
set { SetValue(ServerConnectionCountProperty, value); } set => SetValue(ServerConnectionCountProperty, value);
} }
private readonly Dictionary<HttpWebClient, SessionListItem> sessionDictionary = new Dictionary<HttpWebClient, SessionListItem>(); private readonly Dictionary<HttpWebClient, SessionListItem> sessionDictionary = new Dictionary<HttpWebClient, SessionListItem>();
...@@ -107,8 +107,7 @@ namespace Titanium.Web.Proxy.Examples.Wpf ...@@ -107,8 +107,7 @@ namespace Titanium.Web.Proxy.Examples.Wpf
{ {
await Dispatcher.InvokeAsync(() => await Dispatcher.InvokeAsync(() =>
{ {
SessionListItem item; if (sessionDictionary.TryGetValue(e.WebSession, out var item))
if (sessionDictionary.TryGetValue(e.WebSession, out item))
{ {
item.Update(); item.Update();
} }
...@@ -135,8 +134,7 @@ namespace Titanium.Web.Proxy.Examples.Wpf ...@@ -135,8 +134,7 @@ namespace Titanium.Web.Proxy.Examples.Wpf
SessionListItem item = null; SessionListItem item = null;
await Dispatcher.InvokeAsync(() => await Dispatcher.InvokeAsync(() =>
{ {
SessionListItem item2; if (sessionDictionary.TryGetValue(e.WebSession, out var item2))
if (sessionDictionary.TryGetValue(e.WebSession, out item2))
{ {
item2.Update(); item2.Update();
item = item2; item = item2;
...@@ -177,8 +175,7 @@ namespace Titanium.Web.Proxy.Examples.Wpf ...@@ -177,8 +175,7 @@ namespace Titanium.Web.Proxy.Examples.Wpf
e.DataReceived += (sender, args) => e.DataReceived += (sender, args) =>
{ {
var session = (SessionEventArgs)sender; var session = (SessionEventArgs)sender;
SessionListItem li; if (sessionDictionary.TryGetValue(session.WebSession, out var li))
if (sessionDictionary.TryGetValue(session.WebSession, out li))
{ {
li.ReceivedDataCount += args.Count; li.ReceivedDataCount += args.Count;
} }
...@@ -187,8 +184,7 @@ namespace Titanium.Web.Proxy.Examples.Wpf ...@@ -187,8 +184,7 @@ namespace Titanium.Web.Proxy.Examples.Wpf
e.DataSent += (sender, args) => e.DataSent += (sender, args) =>
{ {
var session = (SessionEventArgs)sender; var session = (SessionEventArgs)sender;
SessionListItem li; if (sessionDictionary.TryGetValue(session.WebSession, out var li))
if (sessionDictionary.TryGetValue(session.WebSession, out li))
{ {
li.SentDataCount += args.Count; li.SentDataCount += args.Count;
} }
......
...@@ -26,50 +26,50 @@ namespace Titanium.Web.Proxy.Examples.Wpf ...@@ -26,50 +26,50 @@ namespace Titanium.Web.Proxy.Examples.Wpf
public string StatusCode public string StatusCode
{ {
get { return statusCode; } get => statusCode;
set { SetField(ref statusCode, value);} set => SetField(ref statusCode, value);
} }
public string Protocol public string Protocol
{ {
get { return protocol; } get => protocol;
set { SetField(ref protocol, value); } set => SetField(ref protocol, value);
} }
public string Host public string Host
{ {
get { return host; } get => host;
set { SetField(ref host, value); } set => SetField(ref host, value);
} }
public string Url public string Url
{ {
get { return url; } get => url;
set { SetField(ref url, value); } set => SetField(ref url, value);
} }
public long BodySize public long BodySize
{ {
get { return bodySize; } get => bodySize;
set { SetField(ref bodySize, value); } set => SetField(ref bodySize, value);
} }
public string Process public string Process
{ {
get { return process; } get => process;
set { SetField(ref process, value); } set => SetField(ref process, value);
} }
public long ReceivedDataCount public long ReceivedDataCount
{ {
get { return receivedDataCount; } get => receivedDataCount;
set { SetField(ref receivedDataCount, value); } set => SetField(ref receivedDataCount, value);
} }
public long SentDataCount public long SentDataCount
{ {
get { return sentDataCount; } get => sentDataCount;
set { SetField(ref sentDataCount, value); } set => SetField(ref sentDataCount, value);
} }
public event PropertyChangedEventHandler PropertyChanged; public event PropertyChangedEventHandler PropertyChanged;
......
...@@ -53,7 +53,7 @@ namespace Titanium.Web.Proxy.EventArguments ...@@ -53,7 +53,7 @@ namespace Titanium.Web.Proxy.EventArguments
/// </summary> /// </summary>
public bool ReRequest public bool ReRequest
{ {
get { return reRequest; } get => reRequest;
set set
{ {
if (WebSession.Response.StatusCode == 0) if (WebSession.Response.StatusCode == 0)
......
...@@ -54,9 +54,7 @@ namespace Titanium.Web.Proxy.Helpers ...@@ -54,9 +54,7 @@ namespace Titanium.Web.Proxy.Helpers
{ {
localhost = Dns.GetHostEntry(Dns.GetHostName()); localhost = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ipAddress; if (IPAddress.TryParse(hostName, out var ipAddress))
if (IPAddress.TryParse(hostName, out ipAddress))
isLocalhost = localhost.AddressList.Any(x => x.Equals(ipAddress)); isLocalhost = localhost.AddressList.Any(x => x.Equals(ipAddress));
if (!isLocalhost) if (!isLocalhost)
......
...@@ -81,8 +81,7 @@ namespace Titanium.Web.Proxy.Helpers.WinHttp ...@@ -81,8 +81,7 @@ namespace Titanium.Web.Proxy.Helpers.WinHttp
public ExternalProxy GetProxy(Uri destination) public ExternalProxy GetProxy(Uri destination)
{ {
IList<string> proxies; if (GetAutoProxies(destination, out var proxies))
if (GetAutoProxies(destination, out proxies))
{ {
if (proxies == null) if (proxies == null)
{ {
......
...@@ -227,8 +227,7 @@ namespace Titanium.Web.Proxy.Http ...@@ -227,8 +227,7 @@ namespace Titanium.Web.Proxy.Http
internal string GetHeaderValueOrNull(string headerName) internal string GetHeaderValueOrNull(string headerName)
{ {
HttpHeader header; if (Headers.TryGetValue(headerName, out var header))
if (Headers.TryGetValue(headerName, out header))
{ {
return header.Value; return header.Value;
} }
...@@ -238,8 +237,7 @@ namespace Titanium.Web.Proxy.Http ...@@ -238,8 +237,7 @@ namespace Titanium.Web.Proxy.Http
internal string SetOrAddHeaderValue(string headerName, string value) internal string SetOrAddHeaderValue(string headerName, string value)
{ {
HttpHeader header; if (Headers.TryGetValue(headerName, out var header))
if (Headers.TryGetValue(headerName, out header))
{ {
header.Value = value; header.Value = value;
} }
......
...@@ -136,10 +136,7 @@ namespace Titanium.Web.Proxy.Http ...@@ -136,10 +136,7 @@ namespace Titanium.Web.Proxy.Http
{ {
string httpStatus = await ServerConnection.StreamReader.ReadLineAsync(); string httpStatus = await ServerConnection.StreamReader.ReadLineAsync();
Version version; Response.ParseResponseLine(httpStatus, out _, out int responseStatusCode, out string responseStatusDescription);
int responseStatusCode;
string responseStatusDescription;
Response.ParseResponseLine(httpStatus, out version, out responseStatusCode, out responseStatusDescription);
//find if server is willing for expect continue //find if server is willing for expect continue
if (responseStatusCode == (int)HttpStatusCode.Continue if (responseStatusCode == (int)HttpStatusCode.Continue
...@@ -180,10 +177,7 @@ namespace Titanium.Web.Proxy.Http ...@@ -180,10 +177,7 @@ namespace Titanium.Web.Proxy.Http
httpStatus = await ServerConnection.StreamReader.ReadLineAsync(); httpStatus = await ServerConnection.StreamReader.ReadLineAsync();
} }
Version version; Response.ParseResponseLine(httpStatus, out var version, out int statusCode, out string statusDescription);
int statusCode;
string statusDescription;
Response.ParseResponseLine(httpStatus, out version, out statusCode, out statusDescription);
Response.HttpVersion = version; Response.HttpVersion = version;
Response.StatusCode = statusCode; Response.StatusCode = statusCode;
......
...@@ -66,14 +66,8 @@ namespace Titanium.Web.Proxy.Http ...@@ -66,14 +66,8 @@ namespace Titanium.Web.Proxy.Http
/// </summary> /// </summary>
public string Host public string Host
{ {
get get => Headers.GetHeaderValueOrNull("host");
{ set => Headers.SetOrAddHeaderValue("host", value);
return Headers.GetHeaderValueOrNull("host");
}
set
{
Headers.SetOrAddHeaderValue("host", value);
}
} }
/// <summary> /// <summary>
...@@ -95,8 +89,7 @@ namespace Titanium.Web.Proxy.Http ...@@ -95,8 +89,7 @@ namespace Titanium.Web.Proxy.Http
return -1; return -1;
} }
long contentLen; long.TryParse(headerValue, out long contentLen);
long.TryParse(headerValue, out contentLen);
if (contentLen >= 0) if (contentLen >= 0)
{ {
return contentLen; return contentLen;
...@@ -123,14 +116,8 @@ namespace Titanium.Web.Proxy.Http ...@@ -123,14 +116,8 @@ namespace Titanium.Web.Proxy.Http
/// </summary> /// </summary>
public string ContentType public string ContentType
{ {
get get => Headers.GetHeaderValueOrNull("content-type");
{ set => Headers.SetOrAddHeaderValue("content-type", value);
return Headers.GetHeaderValueOrNull("content-type");
}
set
{
Headers.SetOrAddHeaderValue("content-type", value);
}
} }
/// <summary> /// <summary>
......
...@@ -118,8 +118,7 @@ namespace Titanium.Web.Proxy.Http ...@@ -118,8 +118,7 @@ namespace Titanium.Web.Proxy.Http
return -1; return -1;
} }
long contentLen; long.TryParse(headerValue, out long contentLen);
long.TryParse(headerValue, out contentLen);
if (contentLen >= 0) if (contentLen >= 0)
{ {
return contentLen; return contentLen;
......
...@@ -28,7 +28,7 @@ namespace Titanium.Web.Proxy.Models ...@@ -28,7 +28,7 @@ namespace Titanium.Web.Proxy.Models
/// </summary> /// </summary>
public string UserName public string UserName
{ {
get { return UseDefaultCredentials ? defaultCredentials.Value.UserName : userName; } get => UseDefaultCredentials ? defaultCredentials.Value.UserName : userName;
set set
{ {
userName = value; userName = value;
...@@ -45,7 +45,7 @@ namespace Titanium.Web.Proxy.Models ...@@ -45,7 +45,7 @@ namespace Titanium.Web.Proxy.Models
/// </summary> /// </summary>
public string Password public string Password
{ {
get { return UseDefaultCredentials ? defaultCredentials.Value.Password : password; } get => UseDefaultCredentials ? defaultCredentials.Value.Password : password;
set set
{ {
password = value; password = value;
......
...@@ -36,7 +36,7 @@ namespace Titanium.Web.Proxy.Network ...@@ -36,7 +36,7 @@ namespace Titanium.Web.Proxy.Network
{ {
internal CertificateEngine Engine internal CertificateEngine Engine
{ {
get { return engine; } get => engine;
set set
{ {
//For Mono (or Non-Windows) only Bouncy Castle is supported //For Mono (or Non-Windows) only Bouncy Castle is supported
...@@ -83,7 +83,7 @@ namespace Titanium.Web.Proxy.Network ...@@ -83,7 +83,7 @@ namespace Titanium.Web.Proxy.Network
internal string Issuer internal string Issuer
{ {
get { return issuer ?? defaultRootCertificateIssuer; } get => issuer ?? defaultRootCertificateIssuer;
set set
{ {
issuer = value; issuer = value;
...@@ -93,7 +93,7 @@ namespace Titanium.Web.Proxy.Network ...@@ -93,7 +93,7 @@ namespace Titanium.Web.Proxy.Network
internal string RootCertificateName internal string RootCertificateName
{ {
get { return rootCertificateName ?? defaultRootRootCertificateName; } get => rootCertificateName ?? defaultRootRootCertificateName;
set set
{ {
rootCertificateName = value; rootCertificateName = value;
...@@ -103,7 +103,7 @@ namespace Titanium.Web.Proxy.Network ...@@ -103,7 +103,7 @@ namespace Titanium.Web.Proxy.Network
internal X509Certificate2 RootCertificate internal X509Certificate2 RootCertificate
{ {
get { return rootCertificate; } get => rootCertificate;
set set
{ {
ClearRootCertificate(); ClearRootCertificate();
......
...@@ -84,8 +84,8 @@ namespace Titanium.Web.Proxy ...@@ -84,8 +84,8 @@ namespace Titanium.Web.Proxy
/// </summary> /// </summary>
public X509Certificate2 RootCertificate public X509Certificate2 RootCertificate
{ {
get { return CertificateManager.RootCertificate; } get => CertificateManager.RootCertificate;
set { CertificateManager.RootCertificate = value; } set => CertificateManager.RootCertificate = value;
} }
/// <summary> /// <summary>
...@@ -94,8 +94,8 @@ namespace Titanium.Web.Proxy ...@@ -94,8 +94,8 @@ namespace Titanium.Web.Proxy
/// </summary> /// </summary>
public string RootCertificateIssuerName public string RootCertificateIssuerName
{ {
get { return CertificateManager.Issuer; } get => CertificateManager.Issuer;
set { CertificateManager.Issuer = value; } set => CertificateManager.Issuer = value;
} }
/// <summary> /// <summary>
...@@ -107,8 +107,8 @@ namespace Titanium.Web.Proxy ...@@ -107,8 +107,8 @@ namespace Titanium.Web.Proxy
/// </summary> /// </summary>
public string RootCertificateName public string RootCertificateName
{ {
get { return CertificateManager.RootCertificateName; } get => CertificateManager.RootCertificateName;
set { CertificateManager.RootCertificateName = value; } set => CertificateManager.RootCertificateName = value;
} }
/// <summary> /// <summary>
...@@ -118,7 +118,7 @@ namespace Titanium.Web.Proxy ...@@ -118,7 +118,7 @@ namespace Titanium.Web.Proxy
/// </summary> /// </summary>
public bool TrustRootCertificate public bool TrustRootCertificate
{ {
get { return trustRootCertificate; } get => trustRootCertificate;
set set
{ {
trustRootCertificate = value; trustRootCertificate = value;
...@@ -136,8 +136,8 @@ namespace Titanium.Web.Proxy ...@@ -136,8 +136,8 @@ namespace Titanium.Web.Proxy
/// </summary> /// </summary>
public CertificateEngine CertificateEngine public CertificateEngine CertificateEngine
{ {
get { return CertificateManager.Engine; } get => CertificateManager.Engine;
set { CertificateManager.Engine = value; } set => CertificateManager.Engine = value;
} }
/// <summary> /// <summary>
...@@ -242,8 +242,8 @@ namespace Titanium.Web.Proxy ...@@ -242,8 +242,8 @@ namespace Titanium.Web.Proxy
/// </summary> /// </summary>
public Action<Exception> ExceptionFunc public Action<Exception> ExceptionFunc
{ {
get { return exceptionFunc ?? defaultExceptionFunc.Value; } get => exceptionFunc ?? defaultExceptionFunc.Value;
set { exceptionFunc = value; } set => exceptionFunc = value;
} }
/// <summary> /// <summary>
......
...@@ -53,10 +53,7 @@ namespace Titanium.Web.Proxy ...@@ -53,10 +53,7 @@ namespace Titanium.Web.Proxy
return; return;
} }
string httpMethod; Request.ParseRequestLine(httpCmd, out string httpMethod, out string httpUrl, out var version);
string httpUrl;
Version version;
Request.ParseRequestLine(httpCmd, out httpMethod, out httpUrl, out version);
httpRemoteUri = httpMethod == "CONNECT" ? new Uri("http://" + httpUrl) : new Uri(httpUrl); httpRemoteUri = httpMethod == "CONNECT" ? new Uri("http://" + httpUrl) : new Uri(httpUrl);
...@@ -306,10 +303,7 @@ namespace Titanium.Web.Proxy ...@@ -306,10 +303,7 @@ namespace Titanium.Web.Proxy
try try
{ {
string httpMethod; Request.ParseRequestLine(httpCmd, out string httpMethod, out string httpUrl, out var version);
string httpUrl;
Version version;
Request.ParseRequestLine(httpCmd, out httpMethod, out httpUrl, out version);
//Read the request headers in to unique and non-unique header collections //Read the request headers in to unique and non-unique header collections
await HeaderParser.ReadHeaders(clientStreamReader, args.WebSession.Request.Headers); await HeaderParser.ReadHeaders(clientStreamReader, args.WebSession.Request.Headers);
...@@ -390,10 +384,7 @@ namespace Titanium.Web.Proxy ...@@ -390,10 +384,7 @@ namespace Titanium.Web.Proxy
await connection.Stream.WriteAsync(requestBytes, 0, requestBytes.Length); await connection.Stream.WriteAsync(requestBytes, 0, requestBytes.Length);
string httpStatus = await connection.StreamReader.ReadLineAsync(); string httpStatus = await connection.StreamReader.ReadLineAsync();
Version responseVersion; Response.ParseResponseLine(httpStatus, out var responseVersion, out int responseStatusCode, out string responseStatusDescription);
int responseStatusCode;
string responseStatusDescription;
Response.ParseResponseLine(httpStatus, out responseVersion, out responseStatusCode, out responseStatusDescription);
args.WebSession.Response.HttpVersion = responseVersion; args.WebSession.Response.HttpVersion = responseVersion;
args.WebSession.Response.StatusCode = responseStatusCode; args.WebSession.Response.StatusCode = responseStatusCode;
args.WebSession.Response.StatusDescription = responseStatusDescription; args.WebSession.Response.StatusDescription = responseStatusDescription;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment