diff --git a/docs/api/Titanium.Web.Proxy.EventArguments.BeforeSslAuthenticateEventArgs.html b/docs/api/Titanium.Web.Proxy.EventArguments.BeforeSslAuthenticateEventArgs.html
index bb7aeecbc..4d94b6257 100644
--- a/docs/api/Titanium.Web.Proxy.EventArguments.BeforeSslAuthenticateEventArgs.html
+++ b/docs/api/Titanium.Web.Proxy.EventArguments.BeforeSslAuthenticateEventArgs.html
@@ -104,7 +104,7 @@
- View Source
+ View Source
diff --git a/docs/api/Titanium.Web.Proxy.EventArguments.CertificateSelectionEventArgs.html b/docs/api/Titanium.Web.Proxy.EventArguments.CertificateSelectionEventArgs.html
index b05b43464..fe2eb72d6 100644
--- a/docs/api/Titanium.Web.Proxy.EventArguments.CertificateSelectionEventArgs.html
+++ b/docs/api/Titanium.Web.Proxy.EventArguments.CertificateSelectionEventArgs.html
@@ -104,7 +104,7 @@ Constructors
Improve this Doc
- View Source
+ View Source
CertificateSelectionEventArgs(SessionEventArgsBase, String, X509CertificateCollection, X509Certificate, String[])
@@ -158,7 +158,7 @@ Properties
Improve this Doc
- View Source
+ View Source
AcceptableIssuers
@@ -189,7 +189,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
ClientCertificate
@@ -220,7 +220,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
LocalCertificates
@@ -251,7 +251,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
RemoteCertificate
@@ -282,7 +282,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
Session
@@ -313,7 +313,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
TargetHost
@@ -350,7 +350,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
diff --git a/docs/api/Titanium.Web.Proxy.EventArguments.CertificateValidationEventArgs.html b/docs/api/Titanium.Web.Proxy.EventArguments.CertificateValidationEventArgs.html
index cf1d4016b..97ef6bf4a 100644
--- a/docs/api/Titanium.Web.Proxy.EventArguments.CertificateValidationEventArgs.html
+++ b/docs/api/Titanium.Web.Proxy.EventArguments.CertificateValidationEventArgs.html
@@ -105,7 +105,7 @@ Constructors
Improve this Doc
- View Source
+ View Source
CertificateValidationEventArgs(SessionEventArgsBase, X509Certificate, X509Chain, SslPolicyErrors)
@@ -154,7 +154,7 @@ Properties
Improve this Doc
- View Source
+ View Source
Certificate
@@ -185,7 +185,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
Chain
@@ -216,7 +216,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
IsValid
@@ -247,7 +247,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
Session
@@ -278,7 +278,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
SslPolicyErrors
@@ -315,7 +315,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
diff --git a/docs/api/Titanium.Web.Proxy.EventArguments.SessionEventArgs.html b/docs/api/Titanium.Web.Proxy.EventArguments.SessionEventArgs.html
index c40bbbd7e..200103068 100644
--- a/docs/api/Titanium.Web.Proxy.EventArguments.SessionEventArgs.html
+++ b/docs/api/Titanium.Web.Proxy.EventArguments.SessionEventArgs.html
@@ -184,7 +184,7 @@ Properties
Improve this Doc
- View Source
+ View Source
IsPromise
@@ -215,7 +215,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
ReRequest
@@ -246,7 +246,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
WebSocketDecoder
@@ -254,7 +254,68 @@
Declaration
-
public WebSocketDecoder WebSocketDecoder { get; }
+
[Obsolete("Use [WebSocketDecoderReceive] instead")]
+public WebSocketDecoder WebSocketDecoder { get; }
+
+ Property Value
+
+
+
+ Type |
+ Description |
+
+
+
+
+ WebSocketDecoder |
+ |
+
+
+
+
+ |
+ Improve this Doc
+
+
+ View Source
+
+
+ WebSocketDecoderReceive
+
+
+ Declaration
+
+
public WebSocketDecoder WebSocketDecoderReceive { get; }
+
+ Property Value
+
+
+
+ Type |
+ Description |
+
+
+
+
+ WebSocketDecoder |
+ |
+
+
+
+
+ |
+ Improve this Doc
+
+
+ View Source
+
+
+ WebSocketDecoderSend
+
+
+ Declaration
+
+
public WebSocketDecoder WebSocketDecoderSend { get; }
Property Value
@@ -278,7 +339,7 @@ Methods
Improve this Doc
- View Source
+ View Source
Dispose()
@@ -296,7 +357,7 @@ Overrides
Improve this Doc
- View Source
+ View Source
@@ -349,7 +410,7 @@ Parameters
Improve this Doc
- View Source
+ View Source
@@ -403,7 +464,7 @@ Parameters
Improve this Doc
- View Source
+ View Source
GetRequestBody(CancellationToken)
@@ -453,7 +514,7 @@ Returns
Improve this Doc
- View Source
+ View Source
GetRequestBodyAsString(CancellationToken)
@@ -503,7 +564,7 @@ Returns
Improve this Doc
- View Source
+ View Source
GetResponseBody(CancellationToken)
@@ -553,7 +614,7 @@ Returns
Improve this Doc
- View Source
+ View Source
GetResponseBodyAsString(CancellationToken)
@@ -603,7 +664,7 @@ Returns
Improve this Doc
- View Source
+ View Source
@@ -650,7 +711,7 @@ Parameters
Improve this Doc
- View Source
+ View Source
@@ -697,7 +758,7 @@ Parameters
Improve this Doc
- View Source
+ View Source
Redirect(String, Boolean)
@@ -737,7 +798,7 @@ Parameters
Improve this Doc
- View Source
+ View Source
Respond(Response, Boolean)
@@ -777,7 +838,7 @@ Parameters
Improve this Doc
- View Source
+ View Source
SetRequestBody(Byte[])
@@ -811,7 +872,7 @@ Parameters
Improve this Doc
- View Source
+ View Source
SetRequestBodyString(String)
@@ -845,7 +906,7 @@ Parameters
Improve this Doc
- View Source
+ View Source
SetResponseBody(Byte[])
@@ -879,7 +940,7 @@ Parameters
Improve this Doc
- View Source
+ View Source
SetResponseBodyString(String)
@@ -913,7 +974,7 @@ Parameters
Improve this Doc
- View Source
+ View Source
TerminateServerConnection()
@@ -931,7 +992,7 @@ Events
Improve this Doc
- View Source
+ View Source
MultipartRequestPartSent
Occurs when multipart request part sent.
diff --git a/docs/api/Titanium.Web.Proxy.Http.ConnectRequest.html b/docs/api/Titanium.Web.Proxy.Http.ConnectRequest.html
index e3c7a2e0e..cbe258d10 100644
--- a/docs/api/Titanium.Web.Proxy.Http.ConnectRequest.html
+++ b/docs/api/Titanium.Web.Proxy.Http.ConnectRequest.html
@@ -205,7 +205,7 @@
Properties
Improve this Doc
- View Source
+ View Source
ClientHelloInfo
@@ -235,7 +235,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
TunnelType
@@ -271,7 +271,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
diff --git a/docs/api/Titanium.Web.Proxy.Http2.Hpack.HpackUtil.IndexType.html b/docs/api/Titanium.Web.Proxy.Http2.Hpack.HpackUtil.IndexType.html
index 116ea1f49..8db631eed 100644
--- a/docs/api/Titanium.Web.Proxy.Http2.Hpack.HpackUtil.IndexType.html
+++ b/docs/api/Titanium.Web.Proxy.Http2.Hpack.HpackUtil.IndexType.html
@@ -126,7 +126,7 @@ Fields
Improve this Doc
- View Source
+ View Source
diff --git a/docs/api/Titanium.Web.Proxy.Http2.Hpack.HpackUtil.html b/docs/api/Titanium.Web.Proxy.Http2.Hpack.HpackUtil.html
index 5d90c9c2f..c3a443245 100644
--- a/docs/api/Titanium.Web.Proxy.Http2.Hpack.HpackUtil.html
+++ b/docs/api/Titanium.Web.Proxy.Http2.Hpack.HpackUtil.html
@@ -127,7 +127,7 @@ Fields
Improve this Doc
- View Source
+ View Source
HuffmanCodeLengths
@@ -156,7 +156,7 @@ Field Value
Improve this Doc
- View Source
+ View Source
HuffmanCodes
@@ -185,7 +185,7 @@ Field Value
Improve this Doc
- View Source
+ View Source
HuffmanEos
@@ -220,7 +220,7 @@ Field Value
Improve this Doc
- View Source
+ View Source
diff --git a/docs/api/Titanium.Web.Proxy.ProxyServer.html b/docs/api/Titanium.Web.Proxy.ProxyServer.html
index e83d17f78..50c2d2157 100644
--- a/docs/api/Titanium.Web.Proxy.ProxyServer.html
+++ b/docs/api/Titanium.Web.Proxy.ProxyServer.html
@@ -298,7 +298,7 @@ Property Value
- CertificateManager |
+ CertificateManager |
|
diff --git a/docs/api/toc.html b/docs/api/toc.html
index 705a256d5..628ad92e4 100644
--- a/docs/api/toc.html
+++ b/docs/api/toc.html
@@ -191,19 +191,6 @@
-
-
- Titanium.Web.Proxy.Network
-
-
-
diff --git a/docs/index.json b/docs/index.json
index d2ac68d68..d38e9c7c6 100644
--- a/docs/index.json
+++ b/docs/index.json
@@ -32,7 +32,7 @@
"api/Titanium.Web.Proxy.EventArguments.SessionEventArgs.html": {
"href": "api/Titanium.Web.Proxy.EventArguments.SessionEventArgs.html",
"title": "Class SessionEventArgs | Titanium Web Proxy",
- "keywords": "Class SessionEventArgs Holds info related to a single proxy session (single request/response sequence). A proxy session is bounded to a single connection from client. A proxy session ends when client terminates connection to proxy or when server terminates connection from proxy. Inheritance Object SessionEventArgsBase SessionEventArgs Implements IDisposable Inherited Members SessionEventArgsBase.ClientConnectionId SessionEventArgsBase.ServerConnectionId SessionEventArgsBase.BufferPool SessionEventArgsBase.ExceptionFunc SessionEventArgsBase.TimeLine SessionEventArgsBase.UserData SessionEventArgsBase.EnableWinAuth SessionEventArgsBase.IsHttps SessionEventArgsBase.ClientLocalEndPoint SessionEventArgsBase.ClientRemoteEndPoint SessionEventArgsBase.ClientEndPoint SessionEventArgsBase.HttpClient SessionEventArgsBase.WebSession SessionEventArgsBase.CustomUpStreamProxy SessionEventArgsBase.CustomUpStreamProxyUsed SessionEventArgsBase.ProxyEndPoint SessionEventArgsBase.LocalEndPoint SessionEventArgsBase.IsTransparent SessionEventArgsBase.IsSocks SessionEventArgsBase.Exception SessionEventArgsBase.DataSent SessionEventArgsBase.DataReceived SessionEventArgsBase.TerminateSession() Namespace : Titanium.Web.Proxy.EventArguments Assembly : Titanium.Web.Proxy.dll Syntax public class SessionEventArgs : SessionEventArgsBase, IDisposable Properties | Improve this Doc View Source IsPromise Is this session a HTTP/2 promise? Declaration public bool IsPromise { get; } Property Value Type Description Boolean | Improve this Doc View Source ReRequest Should we send the request again ? Declaration public bool ReRequest { get; set; } Property Value Type Description Boolean | Improve this Doc View Source WebSocketDecoder Declaration public WebSocketDecoder WebSocketDecoder { get; } Property Value Type Description WebSocketDecoder Methods | Improve this Doc View Source Dispose() Implement any cleanup here Declaration public override void Dispose() Overrides SessionEventArgsBase.Dispose() | Improve this Doc View Source GenericResponse(Byte[], HttpStatusCode, Dictionary, Boolean) Before request is made to server respond with the specified byte[], the specified status to client. And then ignore the request. Declaration public void GenericResponse(byte[] result, HttpStatusCode status, Dictionary headers, bool closeServerConnection = false) Parameters Type Name Description Byte [] result The bytes to sent. HttpStatusCode status The HTTP status code. Dictionary < String , HttpHeader > headers The HTTP headers. Boolean closeServerConnection Close the server connection used by request if any? | Improve this Doc View Source GenericResponse(String, HttpStatusCode, Dictionary, Boolean) Before request is made to server respond with the specified HTML string and the specified status to client. And then ignore the request. Declaration public void GenericResponse(string html, HttpStatusCode status, Dictionary headers = null, bool closeServerConnection = false) Parameters Type Name Description String html The html content. HttpStatusCode status The HTTP status code. Dictionary < String , HttpHeader > headers The HTTP headers. Boolean closeServerConnection Close the server connection used by request if any? | Improve this Doc View Source GetRequestBody(CancellationToken) Gets the request body as bytes. Declaration public Task GetRequestBody(CancellationToken cancellationToken = default(CancellationToken)) Parameters Type Name Description CancellationToken cancellationToken Optional cancellation token for this async task. Returns Type Description Task < Byte []> The body as bytes. | Improve this Doc View Source GetRequestBodyAsString(CancellationToken) Gets the request body as string. Declaration public Task GetRequestBodyAsString(CancellationToken cancellationToken = default(CancellationToken)) Parameters Type Name Description CancellationToken cancellationToken Optional cancellation token for this async task. Returns Type Description Task < String > The body as string. | Improve this Doc View Source GetResponseBody(CancellationToken) Gets the response body as bytes. Declaration public Task GetResponseBody(CancellationToken cancellationToken = default(CancellationToken)) Parameters Type Name Description CancellationToken cancellationToken Optional cancellation token for this async task. Returns Type Description Task < Byte []> The resulting bytes. | Improve this Doc View Source GetResponseBodyAsString(CancellationToken) Gets the response body as string. Declaration public Task GetResponseBodyAsString(CancellationToken cancellationToken = default(CancellationToken)) Parameters Type Name Description CancellationToken cancellationToken Optional cancellation token for this async task. Returns Type Description Task < String > The string body. | Improve this Doc View Source Ok(Byte[], Dictionary, Boolean) Before request is made to server respond with the specified byte[] to client and ignore the request. Declaration public void Ok(byte[] result, Dictionary headers = null, bool closeServerConnection = false) Parameters Type Name Description Byte [] result The html content bytes. Dictionary < String , HttpHeader > headers The HTTP headers. Boolean closeServerConnection Close the server connection used by request if any? | Improve this Doc View Source Ok(String, Dictionary, Boolean) Before request is made to server respond with the specified HTML string to client and ignore the request. Declaration public void Ok(string html, Dictionary headers = null, bool closeServerConnection = false) Parameters Type Name Description String html HTML content to sent. Dictionary < String , HttpHeader > headers HTTP response headers. Boolean closeServerConnection Close the server connection used by request if any? | Improve this Doc View Source Redirect(String, Boolean) Redirect to provided URL. Declaration public void Redirect(string url, bool closeServerConnection = false) Parameters Type Name Description String url The URL to redirect. Boolean closeServerConnection Close the server connection used by request if any? | Improve this Doc View Source Respond(Response, Boolean) Respond with given response object to client. Declaration public void Respond(Response response, bool closeServerConnection = false) Parameters Type Name Description Response response The response object. Boolean closeServerConnection Close the server connection used by request if any? | Improve this Doc View Source SetRequestBody(Byte[]) Sets the request body. Declaration public void SetRequestBody(byte[] body) Parameters Type Name Description Byte [] body The request body bytes. | Improve this Doc View Source SetRequestBodyString(String) Sets the body with the specified string. Declaration public void SetRequestBodyString(string body) Parameters Type Name Description String body The request body string to set. | Improve this Doc View Source SetResponseBody(Byte[]) Set the response body bytes. Declaration public void SetResponseBody(byte[] body) Parameters Type Name Description Byte [] body The body bytes to set. | Improve this Doc View Source SetResponseBodyString(String) Replace the response body with the specified string. Declaration public void SetResponseBodyString(string body) Parameters Type Name Description String body The body string to set. | Improve this Doc View Source TerminateServerConnection() Terminate the connection to server at the end of this HTTP request/response session. Declaration public void TerminateServerConnection() Events | Improve this Doc View Source MultipartRequestPartSent Occurs when multipart request part sent. Declaration public event EventHandler MultipartRequestPartSent Event Type Type Description EventHandler < MultipartRequestPartSentEventArgs > Implements System.IDisposable"
+ "keywords": "Class SessionEventArgs Holds info related to a single proxy session (single request/response sequence). A proxy session is bounded to a single connection from client. A proxy session ends when client terminates connection to proxy or when server terminates connection from proxy. Inheritance Object SessionEventArgsBase SessionEventArgs Implements IDisposable Inherited Members SessionEventArgsBase.ClientConnectionId SessionEventArgsBase.ServerConnectionId SessionEventArgsBase.BufferPool SessionEventArgsBase.ExceptionFunc SessionEventArgsBase.TimeLine SessionEventArgsBase.UserData SessionEventArgsBase.EnableWinAuth SessionEventArgsBase.IsHttps SessionEventArgsBase.ClientLocalEndPoint SessionEventArgsBase.ClientRemoteEndPoint SessionEventArgsBase.ClientEndPoint SessionEventArgsBase.HttpClient SessionEventArgsBase.WebSession SessionEventArgsBase.CustomUpStreamProxy SessionEventArgsBase.CustomUpStreamProxyUsed SessionEventArgsBase.ProxyEndPoint SessionEventArgsBase.LocalEndPoint SessionEventArgsBase.IsTransparent SessionEventArgsBase.IsSocks SessionEventArgsBase.Exception SessionEventArgsBase.DataSent SessionEventArgsBase.DataReceived SessionEventArgsBase.TerminateSession() Namespace : Titanium.Web.Proxy.EventArguments Assembly : Titanium.Web.Proxy.dll Syntax public class SessionEventArgs : SessionEventArgsBase, IDisposable Properties | Improve this Doc View Source IsPromise Is this session a HTTP/2 promise? Declaration public bool IsPromise { get; } Property Value Type Description Boolean | Improve this Doc View Source ReRequest Should we send the request again ? Declaration public bool ReRequest { get; set; } Property Value Type Description Boolean | Improve this Doc View Source WebSocketDecoder Declaration [Obsolete(\"Use [WebSocketDecoderReceive] instead\")] public WebSocketDecoder WebSocketDecoder { get; } Property Value Type Description WebSocketDecoder | Improve this Doc View Source WebSocketDecoderReceive Declaration public WebSocketDecoder WebSocketDecoderReceive { get; } Property Value Type Description WebSocketDecoder | Improve this Doc View Source WebSocketDecoderSend Declaration public WebSocketDecoder WebSocketDecoderSend { get; } Property Value Type Description WebSocketDecoder Methods | Improve this Doc View Source Dispose() Implement any cleanup here Declaration public override void Dispose() Overrides SessionEventArgsBase.Dispose() | Improve this Doc View Source GenericResponse(Byte[], HttpStatusCode, Dictionary, Boolean) Before request is made to server respond with the specified byte[], the specified status to client. And then ignore the request. Declaration public void GenericResponse(byte[] result, HttpStatusCode status, Dictionary headers, bool closeServerConnection = false) Parameters Type Name Description Byte [] result The bytes to sent. HttpStatusCode status The HTTP status code. Dictionary < String , HttpHeader > headers The HTTP headers. Boolean closeServerConnection Close the server connection used by request if any? | Improve this Doc View Source GenericResponse(String, HttpStatusCode, Dictionary, Boolean) Before request is made to server respond with the specified HTML string and the specified status to client. And then ignore the request. Declaration public void GenericResponse(string html, HttpStatusCode status, Dictionary headers = null, bool closeServerConnection = false) Parameters Type Name Description String html The html content. HttpStatusCode status The HTTP status code. Dictionary < String , HttpHeader > headers The HTTP headers. Boolean closeServerConnection Close the server connection used by request if any? | Improve this Doc View Source GetRequestBody(CancellationToken) Gets the request body as bytes. Declaration public Task GetRequestBody(CancellationToken cancellationToken = default(CancellationToken)) Parameters Type Name Description CancellationToken cancellationToken Optional cancellation token for this async task. Returns Type Description Task < Byte []> The body as bytes. | Improve this Doc View Source GetRequestBodyAsString(CancellationToken) Gets the request body as string. Declaration public Task GetRequestBodyAsString(CancellationToken cancellationToken = default(CancellationToken)) Parameters Type Name Description CancellationToken cancellationToken Optional cancellation token for this async task. Returns Type Description Task < String > The body as string. | Improve this Doc View Source GetResponseBody(CancellationToken) Gets the response body as bytes. Declaration public Task GetResponseBody(CancellationToken cancellationToken = default(CancellationToken)) Parameters Type Name Description CancellationToken cancellationToken Optional cancellation token for this async task. Returns Type Description Task < Byte []> The resulting bytes. | Improve this Doc View Source GetResponseBodyAsString(CancellationToken) Gets the response body as string. Declaration public Task GetResponseBodyAsString(CancellationToken cancellationToken = default(CancellationToken)) Parameters Type Name Description CancellationToken cancellationToken Optional cancellation token for this async task. Returns Type Description Task < String > The string body. | Improve this Doc View Source Ok(Byte[], Dictionary, Boolean) Before request is made to server respond with the specified byte[] to client and ignore the request. Declaration public void Ok(byte[] result, Dictionary headers = null, bool closeServerConnection = false) Parameters Type Name Description Byte [] result The html content bytes. Dictionary < String , HttpHeader > headers The HTTP headers. Boolean closeServerConnection Close the server connection used by request if any? | Improve this Doc View Source Ok(String, Dictionary, Boolean) Before request is made to server respond with the specified HTML string to client and ignore the request. Declaration public void Ok(string html, Dictionary headers = null, bool closeServerConnection = false) Parameters Type Name Description String html HTML content to sent. Dictionary < String , HttpHeader > headers HTTP response headers. Boolean closeServerConnection Close the server connection used by request if any? | Improve this Doc View Source Redirect(String, Boolean) Redirect to provided URL. Declaration public void Redirect(string url, bool closeServerConnection = false) Parameters Type Name Description String url The URL to redirect. Boolean closeServerConnection Close the server connection used by request if any? | Improve this Doc View Source Respond(Response, Boolean) Respond with given response object to client. Declaration public void Respond(Response response, bool closeServerConnection = false) Parameters Type Name Description Response response The response object. Boolean closeServerConnection Close the server connection used by request if any? | Improve this Doc View Source SetRequestBody(Byte[]) Sets the request body. Declaration public void SetRequestBody(byte[] body) Parameters Type Name Description Byte [] body The request body bytes. | Improve this Doc View Source SetRequestBodyString(String) Sets the body with the specified string. Declaration public void SetRequestBodyString(string body) Parameters Type Name Description String body The request body string to set. | Improve this Doc View Source SetResponseBody(Byte[]) Set the response body bytes. Declaration public void SetResponseBody(byte[] body) Parameters Type Name Description Byte [] body The body bytes to set. | Improve this Doc View Source SetResponseBodyString(String) Replace the response body with the specified string. Declaration public void SetResponseBodyString(string body) Parameters Type Name Description String body The body string to set. | Improve this Doc View Source TerminateServerConnection() Terminate the connection to server at the end of this HTTP request/response session. Declaration public void TerminateServerConnection() Events | Improve this Doc View Source MultipartRequestPartSent Occurs when multipart request part sent. Declaration public event EventHandler MultipartRequestPartSent Event Type Type Description EventHandler < MultipartRequestPartSentEventArgs > Implements System.IDisposable"
},
"api/Titanium.Web.Proxy.EventArguments.SessionEventArgsBase.html": {
"href": "api/Titanium.Web.Proxy.EventArguments.SessionEventArgsBase.html",
@@ -239,21 +239,6 @@
"title": "Class TransparentProxyEndPoint | Titanium Web Proxy",
"keywords": "Class TransparentProxyEndPoint A proxy end point client is not aware of. Useful when requests are redirected to this proxy end point through port forwarding via router. Inheritance Object TransparentProxyEndPoint Namespace : Titanium.Web.Proxy.Models Assembly : Titanium.Web.Proxy.dll Syntax public class TransparentProxyEndPoint : TransparentBaseProxyEndPoint Constructors | Improve this Doc View Source TransparentProxyEndPoint(IPAddress, Int32, Boolean) Initialize a new instance. Declaration public TransparentProxyEndPoint(IPAddress ipAddress, int port, bool decryptSsl = true) Parameters Type Name Description IPAddress ipAddress Listening Ip address. Int32 port Listening port. Boolean decryptSsl Should we decrypt ssl? Properties | Improve this Doc View Source GenericCertificateName Name of the Certificate need to be sent (same as the hostname we want to proxy). This is valid only when UseServerNameIndication is set to false. Declaration public override string GenericCertificateName { get; set; } Property Value Type Description String Events | Improve this Doc View Source BeforeSslAuthenticate Before Ssl authentication this event is fired. Declaration public event AsyncEventHandler BeforeSslAuthenticate Event Type Type Description AsyncEventHandler < BeforeSslAuthenticateEventArgs >"
},
- "api/Titanium.Web.Proxy.Network.CertificateEngine.html": {
- "href": "api/Titanium.Web.Proxy.Network.CertificateEngine.html",
- "title": "Enum CertificateEngine | Titanium Web Proxy",
- "keywords": "Enum CertificateEngine Certificate Engine option. Namespace : Titanium.Web.Proxy.Network Assembly : Titanium.Web.Proxy.dll Syntax public enum CertificateEngine Fields Name Description BouncyCastle Uses BouncyCastle 3rd party library. Default. BouncyCastleFast DefaultWindows Uses Windows Certification Generation API and only valid in Windows OS. Observed to be faster than BouncyCastle. Bug #468 Reported."
- },
- "api/Titanium.Web.Proxy.Network.CertificateManager.html": {
- "href": "api/Titanium.Web.Proxy.Network.CertificateManager.html",
- "title": "Class CertificateManager | Titanium Web Proxy",
- "keywords": "Class CertificateManager A class to manage SSL certificates used by this proxy server. Inheritance Object CertificateManager Implements IDisposable Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Titanium.Web.Proxy.Network Assembly : Titanium.Web.Proxy.dll Syntax public sealed class CertificateManager : IDisposable Properties | Improve this Doc View Source CertificateCacheTimeOutMinutes Minutes certificates should be kept in cache when not used. Declaration public int CertificateCacheTimeOutMinutes { get; set; } Property Value Type Description Int32 | Improve this Doc View Source CertificateEngine Select Certificate Engine. Optionally set to BouncyCastle. Mono only support BouncyCastle and it is the default. Declaration public CertificateEngine CertificateEngine { get; set; } Property Value Type Description CertificateEngine | Improve this Doc View Source CertificateStorage The fake certificate cache storage. The default cache storage implementation saves certificates in folder \"crts\" (will be created in proxy dll directory). Implement ICertificateCache interface and assign concrete class here to customize. Declaration public ICertificateCache CertificateStorage { get; set; } Property Value Type Description ICertificateCache | Improve this Doc View Source OverwritePfxFile Overwrite Root certificate file. true : replace an existing .pfx file if password is incorrect or if RootCertificate = null. Declaration public bool OverwritePfxFile { get; set; } Property Value Type Description Boolean | Improve this Doc View Source PfxFilePath Name(path) of the Root certificate file. Set the name(path) of the .pfx file. If it is string.Empty Root certificate file will be named as \"rootCert.pfx\" (and will be saved in proxy dll directory) Declaration public string PfxFilePath { get; set; } Property Value Type Description String | Improve this Doc View Source PfxPassword Password of the Root certificate file. Set a password for the .pfx file Declaration public string PfxPassword { get; set; } Property Value Type Description String | Improve this Doc View Source RootCertificate The root certificate. Declaration public X509Certificate2 RootCertificate { get; set; } Property Value Type Description X509Certificate2 | Improve this Doc View Source RootCertificateIssuerName Name of the root certificate issuer. (This is valid only when RootCertificate property is not set.) Declaration public string RootCertificateIssuerName { get; set; } Property Value Type Description String | Improve this Doc View Source RootCertificateName Name of the root certificate. (This is valid only when RootCertificate property is not set.) If no certificate is provided then a default Root Certificate will be created and used. The provided root certificate will be stored in proxy exe directory with the private key. Root certificate file will be named as \"rootCert.pfx\". Declaration public string RootCertificateName { get; set; } Property Value Type Description String | Improve this Doc View Source SaveFakeCertificates Save all fake certificates using CertificateStorage . for can load the certificate and not make new certificate every time. Declaration public bool SaveFakeCertificates { get; set; } Property Value Type Description Boolean | Improve this Doc View Source StorageFlag Adjust behaviour when certificates are saved to filesystem. Declaration public X509KeyStorageFlags StorageFlag { get; set; } Property Value Type Description X509KeyStorageFlags Methods | Improve this Doc View Source ClearRootCertificate() Clear the root certificate and cache. Declaration public void ClearRootCertificate() | Improve this Doc View Source CreateRootCertificate(Boolean) Attempts to create a RootCertificate. Declaration public bool CreateRootCertificate(bool persistToFile = true) Parameters Type Name Description Boolean persistToFile if set to true try to load/save the certificate from rootCert.pfx. Returns Type Description Boolean true if succeeded, else false. | Improve this Doc View Source CreateServerCertificate(String) Creates a server certificate signed by the root certificate. Declaration public Task CreateServerCertificate(string certificateName) Parameters Type Name Description String certificateName Returns Type Description Task < X509Certificate2 > | Improve this Doc View Source Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Declaration public void Dispose() | Improve this Doc View Source EnsureRootCertificate() Ensure certificates are setup (creates root if required). Also makes root certificate trusted based on initial setup from proxy constructor for user/machine trust. Declaration public void EnsureRootCertificate() | Improve this Doc View Source EnsureRootCertificate(Boolean, Boolean, Boolean) Ensure certificates are setup (creates root if required). Also makes root certificate trusted based on provided parameters. Note:setting machineTrustRootCertificate to true will force userTrustRootCertificate to true. Declaration public void EnsureRootCertificate(bool userTrustRootCertificate, bool machineTrustRootCertificate, bool trustRootCertificateAsAdmin = false) Parameters Type Name Description Boolean userTrustRootCertificate Should fake HTTPS certificate be trusted by this machine's user certificate store? Boolean machineTrustRootCertificate Should fake HTTPS certificate be trusted by this machine's certificate store? Boolean trustRootCertificateAsAdmin Should we attempt to trust certificates with elevated permissions by prompting for UAC if required? | Improve this Doc View Source IsRootCertificateMachineTrusted() Determines whether the root certificate is machine trusted. Declaration public bool IsRootCertificateMachineTrusted() Returns Type Description Boolean | Improve this Doc View Source IsRootCertificateUserTrusted() Determines whether the root certificate is trusted. Declaration public bool IsRootCertificateUserTrusted() Returns Type Description Boolean | Improve this Doc View Source LoadRootCertificate() Loads root certificate from current executing assembly location with expected name rootCert.pfx. Declaration public X509Certificate2 LoadRootCertificate() Returns Type Description X509Certificate2 | Improve this Doc View Source LoadRootCertificate(String, String, Boolean, X509KeyStorageFlags) Manually load a Root certificate file from give path (.pfx file). Declaration public bool LoadRootCertificate(string pfxFilePath, string password, bool overwritePfXFile = true, X509KeyStorageFlags storageFlag = X509KeyStorageFlags.Exportable) Parameters Type Name Description String pfxFilePath Set the name(path) of the .pfx file. If it is string.Empty Root certificate file will be named as \"rootCert.pfx\" (and will be saved in proxy dll directory). String password Set a password for the .pfx file. Boolean overwritePfXFile true : replace an existing .pfx file if password is incorrect or if RootCertificate==null. X509KeyStorageFlags storageFlag Returns Type Description Boolean true if succeeded, else false. | Improve this Doc View Source RemoveTrustedRootCertificate(Boolean) Removes the trusted certificates from user store, optionally also from machine store. To remove from machine store elevated permissions are required (will fail silently otherwise). Declaration public void RemoveTrustedRootCertificate(bool machineTrusted = false) Parameters Type Name Description Boolean machineTrusted Should also remove from machine store? | Improve this Doc View Source RemoveTrustedRootCertificateAsAdmin(Boolean) Removes the trusted certificates from user store, optionally also from machine store Declaration public bool RemoveTrustedRootCertificateAsAdmin(bool machineTrusted = false) Parameters Type Name Description Boolean machineTrusted Returns Type Description Boolean Should also remove from machine store? | Improve this Doc View Source TrustRootCertificate(Boolean) Trusts the root certificate in user store, optionally also in machine store. Machine trust would require elevated permissions (will silently fail otherwise). Declaration public void TrustRootCertificate(bool machineTrusted = false) Parameters Type Name Description Boolean machineTrusted | Improve this Doc View Source TrustRootCertificateAsAdmin(Boolean) Puts the certificate to the user store, optionally also to machine store. Prompts with UAC if elevated permissions are required. Works only on Windows. Declaration public bool TrustRootCertificateAsAdmin(bool machineTrusted = false) Parameters Type Name Description Boolean machineTrusted Returns Type Description Boolean True if success. Implements System.IDisposable"
- },
- "api/Titanium.Web.Proxy.Network.html": {
- "href": "api/Titanium.Web.Proxy.Network.html",
- "title": "Namespace Titanium.Web.Proxy.Network | Titanium Web Proxy",
- "keywords": "Namespace Titanium.Web.Proxy.Network Classes CertificateManager A class to manage SSL certificates used by this proxy server. Enums CertificateEngine Certificate Engine option."
- },
"api/Titanium.Web.Proxy.ProxyServer.html": {
"href": "api/Titanium.Web.Proxy.ProxyServer.html",
"title": "Class ProxyServer | Titanium Web Proxy",
diff --git a/docs/xrefmap.yml b/docs/xrefmap.yml
index 25ca044f3..fe53085ef 100644
--- a/docs/xrefmap.yml
+++ b/docs/xrefmap.yml
@@ -559,6 +559,32 @@ references:
isSpec: "True"
fullName: Titanium.Web.Proxy.EventArguments.SessionEventArgs.WebSocketDecoder
nameWithType: SessionEventArgs.WebSocketDecoder
+- uid: Titanium.Web.Proxy.EventArguments.SessionEventArgs.WebSocketDecoderReceive
+ name: WebSocketDecoderReceive
+ href: api/Titanium.Web.Proxy.EventArguments.SessionEventArgs.html#Titanium_Web_Proxy_EventArguments_SessionEventArgs_WebSocketDecoderReceive
+ commentId: P:Titanium.Web.Proxy.EventArguments.SessionEventArgs.WebSocketDecoderReceive
+ fullName: Titanium.Web.Proxy.EventArguments.SessionEventArgs.WebSocketDecoderReceive
+ nameWithType: SessionEventArgs.WebSocketDecoderReceive
+- uid: Titanium.Web.Proxy.EventArguments.SessionEventArgs.WebSocketDecoderReceive*
+ name: WebSocketDecoderReceive
+ href: api/Titanium.Web.Proxy.EventArguments.SessionEventArgs.html#Titanium_Web_Proxy_EventArguments_SessionEventArgs_WebSocketDecoderReceive_
+ commentId: Overload:Titanium.Web.Proxy.EventArguments.SessionEventArgs.WebSocketDecoderReceive
+ isSpec: "True"
+ fullName: Titanium.Web.Proxy.EventArguments.SessionEventArgs.WebSocketDecoderReceive
+ nameWithType: SessionEventArgs.WebSocketDecoderReceive
+- uid: Titanium.Web.Proxy.EventArguments.SessionEventArgs.WebSocketDecoderSend
+ name: WebSocketDecoderSend
+ href: api/Titanium.Web.Proxy.EventArguments.SessionEventArgs.html#Titanium_Web_Proxy_EventArguments_SessionEventArgs_WebSocketDecoderSend
+ commentId: P:Titanium.Web.Proxy.EventArguments.SessionEventArgs.WebSocketDecoderSend
+ fullName: Titanium.Web.Proxy.EventArguments.SessionEventArgs.WebSocketDecoderSend
+ nameWithType: SessionEventArgs.WebSocketDecoderSend
+- uid: Titanium.Web.Proxy.EventArguments.SessionEventArgs.WebSocketDecoderSend*
+ name: WebSocketDecoderSend
+ href: api/Titanium.Web.Proxy.EventArguments.SessionEventArgs.html#Titanium_Web_Proxy_EventArguments_SessionEventArgs_WebSocketDecoderSend_
+ commentId: Overload:Titanium.Web.Proxy.EventArguments.SessionEventArgs.WebSocketDecoderSend
+ isSpec: "True"
+ fullName: Titanium.Web.Proxy.EventArguments.SessionEventArgs.WebSocketDecoderSend
+ nameWithType: SessionEventArgs.WebSocketDecoderSend
- uid: Titanium.Web.Proxy.EventArguments.SessionEventArgsBase
name: SessionEventArgsBase
href: api/Titanium.Web.Proxy.EventArguments.SessionEventArgsBase.html
@@ -2895,353 +2921,6 @@ references:
isSpec: "True"
fullName: Titanium.Web.Proxy.Models.TransparentProxyEndPoint.GenericCertificateName
nameWithType: TransparentProxyEndPoint.GenericCertificateName
-- uid: Titanium.Web.Proxy.Network
- name: Titanium.Web.Proxy.Network
- href: api/Titanium.Web.Proxy.Network.html
- commentId: N:Titanium.Web.Proxy.Network
- fullName: Titanium.Web.Proxy.Network
- nameWithType: Titanium.Web.Proxy.Network
-- uid: Titanium.Web.Proxy.Network.CertificateEngine
- name: CertificateEngine
- href: api/Titanium.Web.Proxy.Network.CertificateEngine.html
- commentId: T:Titanium.Web.Proxy.Network.CertificateEngine
- fullName: Titanium.Web.Proxy.Network.CertificateEngine
- nameWithType: CertificateEngine
-- uid: Titanium.Web.Proxy.Network.CertificateEngine.BouncyCastle
- name: BouncyCastle
- href: api/Titanium.Web.Proxy.Network.CertificateEngine.html#Titanium_Web_Proxy_Network_CertificateEngine_BouncyCastle
- commentId: F:Titanium.Web.Proxy.Network.CertificateEngine.BouncyCastle
- fullName: Titanium.Web.Proxy.Network.CertificateEngine.BouncyCastle
- nameWithType: CertificateEngine.BouncyCastle
-- uid: Titanium.Web.Proxy.Network.CertificateEngine.BouncyCastleFast
- name: BouncyCastleFast
- href: api/Titanium.Web.Proxy.Network.CertificateEngine.html#Titanium_Web_Proxy_Network_CertificateEngine_BouncyCastleFast
- commentId: F:Titanium.Web.Proxy.Network.CertificateEngine.BouncyCastleFast
- fullName: Titanium.Web.Proxy.Network.CertificateEngine.BouncyCastleFast
- nameWithType: CertificateEngine.BouncyCastleFast
-- uid: Titanium.Web.Proxy.Network.CertificateEngine.DefaultWindows
- name: DefaultWindows
- href: api/Titanium.Web.Proxy.Network.CertificateEngine.html#Titanium_Web_Proxy_Network_CertificateEngine_DefaultWindows
- commentId: F:Titanium.Web.Proxy.Network.CertificateEngine.DefaultWindows
- fullName: Titanium.Web.Proxy.Network.CertificateEngine.DefaultWindows
- nameWithType: CertificateEngine.DefaultWindows
-- uid: Titanium.Web.Proxy.Network.CertificateManager
- name: CertificateManager
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html
- commentId: T:Titanium.Web.Proxy.Network.CertificateManager
- fullName: Titanium.Web.Proxy.Network.CertificateManager
- nameWithType: CertificateManager
-- uid: Titanium.Web.Proxy.Network.CertificateManager.CertificateCacheTimeOutMinutes
- name: CertificateCacheTimeOutMinutes
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_CertificateCacheTimeOutMinutes
- commentId: P:Titanium.Web.Proxy.Network.CertificateManager.CertificateCacheTimeOutMinutes
- fullName: Titanium.Web.Proxy.Network.CertificateManager.CertificateCacheTimeOutMinutes
- nameWithType: CertificateManager.CertificateCacheTimeOutMinutes
-- uid: Titanium.Web.Proxy.Network.CertificateManager.CertificateCacheTimeOutMinutes*
- name: CertificateCacheTimeOutMinutes
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_CertificateCacheTimeOutMinutes_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.CertificateCacheTimeOutMinutes
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.CertificateCacheTimeOutMinutes
- nameWithType: CertificateManager.CertificateCacheTimeOutMinutes
-- uid: Titanium.Web.Proxy.Network.CertificateManager.CertificateEngine
- name: CertificateEngine
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_CertificateEngine
- commentId: P:Titanium.Web.Proxy.Network.CertificateManager.CertificateEngine
- fullName: Titanium.Web.Proxy.Network.CertificateManager.CertificateEngine
- nameWithType: CertificateManager.CertificateEngine
-- uid: Titanium.Web.Proxy.Network.CertificateManager.CertificateEngine*
- name: CertificateEngine
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_CertificateEngine_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.CertificateEngine
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.CertificateEngine
- nameWithType: CertificateManager.CertificateEngine
-- uid: Titanium.Web.Proxy.Network.CertificateManager.CertificateStorage
- name: CertificateStorage
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_CertificateStorage
- commentId: P:Titanium.Web.Proxy.Network.CertificateManager.CertificateStorage
- fullName: Titanium.Web.Proxy.Network.CertificateManager.CertificateStorage
- nameWithType: CertificateManager.CertificateStorage
-- uid: Titanium.Web.Proxy.Network.CertificateManager.CertificateStorage*
- name: CertificateStorage
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_CertificateStorage_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.CertificateStorage
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.CertificateStorage
- nameWithType: CertificateManager.CertificateStorage
-- uid: Titanium.Web.Proxy.Network.CertificateManager.ClearRootCertificate
- name: ClearRootCertificate()
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_ClearRootCertificate
- commentId: M:Titanium.Web.Proxy.Network.CertificateManager.ClearRootCertificate
- fullName: Titanium.Web.Proxy.Network.CertificateManager.ClearRootCertificate()
- nameWithType: CertificateManager.ClearRootCertificate()
-- uid: Titanium.Web.Proxy.Network.CertificateManager.ClearRootCertificate*
- name: ClearRootCertificate
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_ClearRootCertificate_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.ClearRootCertificate
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.ClearRootCertificate
- nameWithType: CertificateManager.ClearRootCertificate
-- uid: Titanium.Web.Proxy.Network.CertificateManager.CreateRootCertificate(System.Boolean)
- name: CreateRootCertificate(Boolean)
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_CreateRootCertificate_System_Boolean_
- commentId: M:Titanium.Web.Proxy.Network.CertificateManager.CreateRootCertificate(System.Boolean)
- fullName: Titanium.Web.Proxy.Network.CertificateManager.CreateRootCertificate(System.Boolean)
- nameWithType: CertificateManager.CreateRootCertificate(Boolean)
-- uid: Titanium.Web.Proxy.Network.CertificateManager.CreateRootCertificate*
- name: CreateRootCertificate
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_CreateRootCertificate_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.CreateRootCertificate
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.CreateRootCertificate
- nameWithType: CertificateManager.CreateRootCertificate
-- uid: Titanium.Web.Proxy.Network.CertificateManager.CreateServerCertificate(System.String)
- name: CreateServerCertificate(String)
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_CreateServerCertificate_System_String_
- commentId: M:Titanium.Web.Proxy.Network.CertificateManager.CreateServerCertificate(System.String)
- fullName: Titanium.Web.Proxy.Network.CertificateManager.CreateServerCertificate(System.String)
- nameWithType: CertificateManager.CreateServerCertificate(String)
-- uid: Titanium.Web.Proxy.Network.CertificateManager.CreateServerCertificate*
- name: CreateServerCertificate
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_CreateServerCertificate_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.CreateServerCertificate
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.CreateServerCertificate
- nameWithType: CertificateManager.CreateServerCertificate
-- uid: Titanium.Web.Proxy.Network.CertificateManager.Dispose
- name: Dispose()
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_Dispose
- commentId: M:Titanium.Web.Proxy.Network.CertificateManager.Dispose
- fullName: Titanium.Web.Proxy.Network.CertificateManager.Dispose()
- nameWithType: CertificateManager.Dispose()
-- uid: Titanium.Web.Proxy.Network.CertificateManager.Dispose*
- name: Dispose
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_Dispose_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.Dispose
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.Dispose
- nameWithType: CertificateManager.Dispose
-- uid: Titanium.Web.Proxy.Network.CertificateManager.EnsureRootCertificate
- name: EnsureRootCertificate()
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_EnsureRootCertificate
- commentId: M:Titanium.Web.Proxy.Network.CertificateManager.EnsureRootCertificate
- fullName: Titanium.Web.Proxy.Network.CertificateManager.EnsureRootCertificate()
- nameWithType: CertificateManager.EnsureRootCertificate()
-- uid: Titanium.Web.Proxy.Network.CertificateManager.EnsureRootCertificate(System.Boolean,System.Boolean,System.Boolean)
- name: EnsureRootCertificate(Boolean, Boolean, Boolean)
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_EnsureRootCertificate_System_Boolean_System_Boolean_System_Boolean_
- commentId: M:Titanium.Web.Proxy.Network.CertificateManager.EnsureRootCertificate(System.Boolean,System.Boolean,System.Boolean)
- fullName: Titanium.Web.Proxy.Network.CertificateManager.EnsureRootCertificate(System.Boolean, System.Boolean, System.Boolean)
- nameWithType: CertificateManager.EnsureRootCertificate(Boolean, Boolean, Boolean)
-- uid: Titanium.Web.Proxy.Network.CertificateManager.EnsureRootCertificate*
- name: EnsureRootCertificate
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_EnsureRootCertificate_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.EnsureRootCertificate
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.EnsureRootCertificate
- nameWithType: CertificateManager.EnsureRootCertificate
-- uid: Titanium.Web.Proxy.Network.CertificateManager.IsRootCertificateMachineTrusted
- name: IsRootCertificateMachineTrusted()
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_IsRootCertificateMachineTrusted
- commentId: M:Titanium.Web.Proxy.Network.CertificateManager.IsRootCertificateMachineTrusted
- fullName: Titanium.Web.Proxy.Network.CertificateManager.IsRootCertificateMachineTrusted()
- nameWithType: CertificateManager.IsRootCertificateMachineTrusted()
-- uid: Titanium.Web.Proxy.Network.CertificateManager.IsRootCertificateMachineTrusted*
- name: IsRootCertificateMachineTrusted
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_IsRootCertificateMachineTrusted_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.IsRootCertificateMachineTrusted
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.IsRootCertificateMachineTrusted
- nameWithType: CertificateManager.IsRootCertificateMachineTrusted
-- uid: Titanium.Web.Proxy.Network.CertificateManager.IsRootCertificateUserTrusted
- name: IsRootCertificateUserTrusted()
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_IsRootCertificateUserTrusted
- commentId: M:Titanium.Web.Proxy.Network.CertificateManager.IsRootCertificateUserTrusted
- fullName: Titanium.Web.Proxy.Network.CertificateManager.IsRootCertificateUserTrusted()
- nameWithType: CertificateManager.IsRootCertificateUserTrusted()
-- uid: Titanium.Web.Proxy.Network.CertificateManager.IsRootCertificateUserTrusted*
- name: IsRootCertificateUserTrusted
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_IsRootCertificateUserTrusted_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.IsRootCertificateUserTrusted
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.IsRootCertificateUserTrusted
- nameWithType: CertificateManager.IsRootCertificateUserTrusted
-- uid: Titanium.Web.Proxy.Network.CertificateManager.LoadRootCertificate
- name: LoadRootCertificate()
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_LoadRootCertificate
- commentId: M:Titanium.Web.Proxy.Network.CertificateManager.LoadRootCertificate
- fullName: Titanium.Web.Proxy.Network.CertificateManager.LoadRootCertificate()
- nameWithType: CertificateManager.LoadRootCertificate()
-- uid: Titanium.Web.Proxy.Network.CertificateManager.LoadRootCertificate(System.String,System.String,System.Boolean,System.Security.Cryptography.X509Certificates.X509KeyStorageFlags)
- name: LoadRootCertificate(String, String, Boolean, X509KeyStorageFlags)
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_LoadRootCertificate_System_String_System_String_System_Boolean_System_Security_Cryptography_X509Certificates_X509KeyStorageFlags_
- commentId: M:Titanium.Web.Proxy.Network.CertificateManager.LoadRootCertificate(System.String,System.String,System.Boolean,System.Security.Cryptography.X509Certificates.X509KeyStorageFlags)
- fullName: Titanium.Web.Proxy.Network.CertificateManager.LoadRootCertificate(System.String, System.String, System.Boolean, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags)
- nameWithType: CertificateManager.LoadRootCertificate(String, String, Boolean, X509KeyStorageFlags)
-- uid: Titanium.Web.Proxy.Network.CertificateManager.LoadRootCertificate*
- name: LoadRootCertificate
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_LoadRootCertificate_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.LoadRootCertificate
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.LoadRootCertificate
- nameWithType: CertificateManager.LoadRootCertificate
-- uid: Titanium.Web.Proxy.Network.CertificateManager.OverwritePfxFile
- name: OverwritePfxFile
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_OverwritePfxFile
- commentId: P:Titanium.Web.Proxy.Network.CertificateManager.OverwritePfxFile
- fullName: Titanium.Web.Proxy.Network.CertificateManager.OverwritePfxFile
- nameWithType: CertificateManager.OverwritePfxFile
-- uid: Titanium.Web.Proxy.Network.CertificateManager.OverwritePfxFile*
- name: OverwritePfxFile
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_OverwritePfxFile_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.OverwritePfxFile
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.OverwritePfxFile
- nameWithType: CertificateManager.OverwritePfxFile
-- uid: Titanium.Web.Proxy.Network.CertificateManager.PfxFilePath
- name: PfxFilePath
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_PfxFilePath
- commentId: P:Titanium.Web.Proxy.Network.CertificateManager.PfxFilePath
- fullName: Titanium.Web.Proxy.Network.CertificateManager.PfxFilePath
- nameWithType: CertificateManager.PfxFilePath
-- uid: Titanium.Web.Proxy.Network.CertificateManager.PfxFilePath*
- name: PfxFilePath
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_PfxFilePath_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.PfxFilePath
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.PfxFilePath
- nameWithType: CertificateManager.PfxFilePath
-- uid: Titanium.Web.Proxy.Network.CertificateManager.PfxPassword
- name: PfxPassword
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_PfxPassword
- commentId: P:Titanium.Web.Proxy.Network.CertificateManager.PfxPassword
- fullName: Titanium.Web.Proxy.Network.CertificateManager.PfxPassword
- nameWithType: CertificateManager.PfxPassword
-- uid: Titanium.Web.Proxy.Network.CertificateManager.PfxPassword*
- name: PfxPassword
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_PfxPassword_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.PfxPassword
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.PfxPassword
- nameWithType: CertificateManager.PfxPassword
-- uid: Titanium.Web.Proxy.Network.CertificateManager.RemoveTrustedRootCertificate(System.Boolean)
- name: RemoveTrustedRootCertificate(Boolean)
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_RemoveTrustedRootCertificate_System_Boolean_
- commentId: M:Titanium.Web.Proxy.Network.CertificateManager.RemoveTrustedRootCertificate(System.Boolean)
- fullName: Titanium.Web.Proxy.Network.CertificateManager.RemoveTrustedRootCertificate(System.Boolean)
- nameWithType: CertificateManager.RemoveTrustedRootCertificate(Boolean)
-- uid: Titanium.Web.Proxy.Network.CertificateManager.RemoveTrustedRootCertificate*
- name: RemoveTrustedRootCertificate
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_RemoveTrustedRootCertificate_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.RemoveTrustedRootCertificate
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.RemoveTrustedRootCertificate
- nameWithType: CertificateManager.RemoveTrustedRootCertificate
-- uid: Titanium.Web.Proxy.Network.CertificateManager.RemoveTrustedRootCertificateAsAdmin(System.Boolean)
- name: RemoveTrustedRootCertificateAsAdmin(Boolean)
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_RemoveTrustedRootCertificateAsAdmin_System_Boolean_
- commentId: M:Titanium.Web.Proxy.Network.CertificateManager.RemoveTrustedRootCertificateAsAdmin(System.Boolean)
- fullName: Titanium.Web.Proxy.Network.CertificateManager.RemoveTrustedRootCertificateAsAdmin(System.Boolean)
- nameWithType: CertificateManager.RemoveTrustedRootCertificateAsAdmin(Boolean)
-- uid: Titanium.Web.Proxy.Network.CertificateManager.RemoveTrustedRootCertificateAsAdmin*
- name: RemoveTrustedRootCertificateAsAdmin
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_RemoveTrustedRootCertificateAsAdmin_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.RemoveTrustedRootCertificateAsAdmin
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.RemoveTrustedRootCertificateAsAdmin
- nameWithType: CertificateManager.RemoveTrustedRootCertificateAsAdmin
-- uid: Titanium.Web.Proxy.Network.CertificateManager.RootCertificate
- name: RootCertificate
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_RootCertificate
- commentId: P:Titanium.Web.Proxy.Network.CertificateManager.RootCertificate
- fullName: Titanium.Web.Proxy.Network.CertificateManager.RootCertificate
- nameWithType: CertificateManager.RootCertificate
-- uid: Titanium.Web.Proxy.Network.CertificateManager.RootCertificate*
- name: RootCertificate
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_RootCertificate_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.RootCertificate
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.RootCertificate
- nameWithType: CertificateManager.RootCertificate
-- uid: Titanium.Web.Proxy.Network.CertificateManager.RootCertificateIssuerName
- name: RootCertificateIssuerName
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_RootCertificateIssuerName
- commentId: P:Titanium.Web.Proxy.Network.CertificateManager.RootCertificateIssuerName
- fullName: Titanium.Web.Proxy.Network.CertificateManager.RootCertificateIssuerName
- nameWithType: CertificateManager.RootCertificateIssuerName
-- uid: Titanium.Web.Proxy.Network.CertificateManager.RootCertificateIssuerName*
- name: RootCertificateIssuerName
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_RootCertificateIssuerName_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.RootCertificateIssuerName
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.RootCertificateIssuerName
- nameWithType: CertificateManager.RootCertificateIssuerName
-- uid: Titanium.Web.Proxy.Network.CertificateManager.RootCertificateName
- name: RootCertificateName
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_RootCertificateName
- commentId: P:Titanium.Web.Proxy.Network.CertificateManager.RootCertificateName
- fullName: Titanium.Web.Proxy.Network.CertificateManager.RootCertificateName
- nameWithType: CertificateManager.RootCertificateName
-- uid: Titanium.Web.Proxy.Network.CertificateManager.RootCertificateName*
- name: RootCertificateName
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_RootCertificateName_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.RootCertificateName
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.RootCertificateName
- nameWithType: CertificateManager.RootCertificateName
-- uid: Titanium.Web.Proxy.Network.CertificateManager.SaveFakeCertificates
- name: SaveFakeCertificates
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_SaveFakeCertificates
- commentId: P:Titanium.Web.Proxy.Network.CertificateManager.SaveFakeCertificates
- fullName: Titanium.Web.Proxy.Network.CertificateManager.SaveFakeCertificates
- nameWithType: CertificateManager.SaveFakeCertificates
-- uid: Titanium.Web.Proxy.Network.CertificateManager.SaveFakeCertificates*
- name: SaveFakeCertificates
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_SaveFakeCertificates_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.SaveFakeCertificates
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.SaveFakeCertificates
- nameWithType: CertificateManager.SaveFakeCertificates
-- uid: Titanium.Web.Proxy.Network.CertificateManager.StorageFlag
- name: StorageFlag
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_StorageFlag
- commentId: P:Titanium.Web.Proxy.Network.CertificateManager.StorageFlag
- fullName: Titanium.Web.Proxy.Network.CertificateManager.StorageFlag
- nameWithType: CertificateManager.StorageFlag
-- uid: Titanium.Web.Proxy.Network.CertificateManager.StorageFlag*
- name: StorageFlag
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_StorageFlag_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.StorageFlag
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.StorageFlag
- nameWithType: CertificateManager.StorageFlag
-- uid: Titanium.Web.Proxy.Network.CertificateManager.TrustRootCertificate(System.Boolean)
- name: TrustRootCertificate(Boolean)
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_TrustRootCertificate_System_Boolean_
- commentId: M:Titanium.Web.Proxy.Network.CertificateManager.TrustRootCertificate(System.Boolean)
- fullName: Titanium.Web.Proxy.Network.CertificateManager.TrustRootCertificate(System.Boolean)
- nameWithType: CertificateManager.TrustRootCertificate(Boolean)
-- uid: Titanium.Web.Proxy.Network.CertificateManager.TrustRootCertificate*
- name: TrustRootCertificate
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_TrustRootCertificate_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.TrustRootCertificate
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.TrustRootCertificate
- nameWithType: CertificateManager.TrustRootCertificate
-- uid: Titanium.Web.Proxy.Network.CertificateManager.TrustRootCertificateAsAdmin(System.Boolean)
- name: TrustRootCertificateAsAdmin(Boolean)
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_TrustRootCertificateAsAdmin_System_Boolean_
- commentId: M:Titanium.Web.Proxy.Network.CertificateManager.TrustRootCertificateAsAdmin(System.Boolean)
- fullName: Titanium.Web.Proxy.Network.CertificateManager.TrustRootCertificateAsAdmin(System.Boolean)
- nameWithType: CertificateManager.TrustRootCertificateAsAdmin(Boolean)
-- uid: Titanium.Web.Proxy.Network.CertificateManager.TrustRootCertificateAsAdmin*
- name: TrustRootCertificateAsAdmin
- href: api/Titanium.Web.Proxy.Network.CertificateManager.html#Titanium_Web_Proxy_Network_CertificateManager_TrustRootCertificateAsAdmin_
- commentId: Overload:Titanium.Web.Proxy.Network.CertificateManager.TrustRootCertificateAsAdmin
- isSpec: "True"
- fullName: Titanium.Web.Proxy.Network.CertificateManager.TrustRootCertificateAsAdmin
- nameWithType: CertificateManager.TrustRootCertificateAsAdmin
- uid: Titanium.Web.Proxy.ProxyServer
name: ProxyServer
href: api/Titanium.Web.Proxy.ProxyServer.html
diff --git a/examples/Titanium.Web.Proxy.Examples.Basic/ProxyTestController.cs b/examples/Titanium.Web.Proxy.Examples.Basic/ProxyTestController.cs
index d2f079179..ecd8bba30 100644
--- a/examples/Titanium.Web.Proxy.Examples.Basic/ProxyTestController.cs
+++ b/examples/Titanium.Web.Proxy.Examples.Basic/ProxyTestController.cs
@@ -156,7 +156,11 @@ private async Task onGetCustomUpStreamProxyFunc(SessionEventArgs
// this is just to show the functionality, provided values are junk
return new ExternalProxy
{
- BypassLocalhost = false, HostName = "127.0.0.9", Port = 9090, Password = "fake", UserName = "fake",
+ BypassLocalhost = false,
+ HostName = "127.0.0.9",
+ Port = 9090,
+ Password = "fake",
+ UserName = "fake",
UseDefaultCredentials = false
};
}
@@ -168,7 +172,11 @@ private async Task onCustomUpStreamProxyFailureFunc(SessionEvent
// this is just to show the functionality, provided values are junk
return new ExternalProxy
{
- BypassLocalhost = false, HostName = "127.0.0.10", Port = 9191, Password = "fake2", UserName = "fake2",
+ BypassLocalhost = false,
+ HostName = "127.0.0.10",
+ Port = 9191,
+ Password = "fake2",
+ UserName = "fake2",
UseDefaultCredentials = false
};
}
@@ -422,4 +430,3 @@ private async Task writeToConsole(string message, ConsoleColor? consoleColor = n
//}
}
}
-
diff --git a/examples/Titanium.Web.Proxy.Examples.Basic/SampleClientState.cs b/examples/Titanium.Web.Proxy.Examples.Basic/SampleClientState.cs
index 163952680..b86ea4105 100644
--- a/examples/Titanium.Web.Proxy.Examples.Basic/SampleClientState.cs
+++ b/examples/Titanium.Web.Proxy.Examples.Basic/SampleClientState.cs
@@ -1,5 +1,4 @@
-using System;
-using System.Text;
+using System.Text;
namespace Titanium.Web.Proxy.Examples.Basic
{
diff --git a/examples/Titanium.Web.Proxy.Examples.Wpf/MainWindow.xaml.cs b/examples/Titanium.Web.Proxy.Examples.Wpf/MainWindow.xaml.cs
index d3fec7226..8afbd0f02 100644
--- a/examples/Titanium.Web.Proxy.Examples.Wpf/MainWindow.xaml.cs
+++ b/examples/Titanium.Web.Proxy.Examples.Wpf/MainWindow.xaml.cs
@@ -104,7 +104,7 @@ public MainWindow()
Dispatcher.Invoke(() => { ServerConnectionCount = proxyServer.ServerConnectionCount; });
};
proxyServer.Start();
-
+
proxyServer.SetAsSystemProxy(explicitEndPoint, ProxyProtocolType.AllHttp);
InitializeComponent();
@@ -279,7 +279,7 @@ private SessionListItem createSessionListItem(SessionEventArgsBase e)
li.SentDataCount += args.Count;
//if (tunnelType == TunnelType.Http2)
- AppendTransferLog( session.GetHashCode() + (isTunnelConnect ? "_tunnel" : "") + "_sent",
+ AppendTransferLog(session.GetHashCode() + (isTunnelConnect ? "_tunnel" : "") + "_sent",
args.Buffer, args.Offset, args.Count);
}
};
diff --git a/src/Titanium.Web.Proxy/Network/Certificate/BCCertificateMaker.cs b/src/Titanium.Web.Proxy/Certificates/BCCertificateMaker.cs
similarity index 99%
rename from src/Titanium.Web.Proxy/Network/Certificate/BCCertificateMaker.cs
rename to src/Titanium.Web.Proxy/Certificates/BCCertificateMaker.cs
index c77131936..5d104c511 100644
--- a/src/Titanium.Web.Proxy/Network/Certificate/BCCertificateMaker.cs
+++ b/src/Titanium.Web.Proxy/Certificates/BCCertificateMaker.cs
@@ -162,7 +162,7 @@ private static X509Certificate2 withPrivateKey(X509Certificate certificate, Asym
const string password = "password";
Pkcs12Store store;
- if(RunTime.IsRunningOnMono)
+ if (RunTime.IsRunningOnMono)
{
var builder = new Pkcs12StoreBuilder();
builder.SetUseDerEncoding(true);
@@ -172,7 +172,7 @@ private static X509Certificate2 withPrivateKey(X509Certificate certificate, Asym
{
store = new Pkcs12Store();
}
-
+
var entry = new X509CertificateEntry(certificate);
store.SetCertificateEntry(certificate.SubjectDN.ToString(), entry);
diff --git a/src/Titanium.Web.Proxy/Network/Certificate/BCCertificateMakerFast.cs b/src/Titanium.Web.Proxy/Certificates/BCCertificateMakerFast.cs
similarity index 99%
rename from src/Titanium.Web.Proxy/Network/Certificate/BCCertificateMakerFast.cs
rename to src/Titanium.Web.Proxy/Certificates/BCCertificateMakerFast.cs
index 0ea2ba140..6a7adca57 100644
--- a/src/Titanium.Web.Proxy/Network/Certificate/BCCertificateMakerFast.cs
+++ b/src/Titanium.Web.Proxy/Certificates/BCCertificateMakerFast.cs
@@ -171,7 +171,7 @@ private static X509Certificate2 withPrivateKey(X509Certificate certificate, Asym
const string password = "password";
Pkcs12Store store;
- if(RunTime.IsRunningOnMono)
+ if (RunTime.IsRunningOnMono)
{
var builder = new Pkcs12StoreBuilder();
builder.SetUseDerEncoding(true);
@@ -181,7 +181,7 @@ private static X509Certificate2 withPrivateKey(X509Certificate certificate, Asym
{
store = new Pkcs12Store();
}
-
+
var entry = new X509CertificateEntry(certificate);
store.SetCertificateEntry(certificate.SubjectDN.ToString(), entry);
diff --git a/src/Titanium.Web.Proxy/Network/CachedCertificate.cs b/src/Titanium.Web.Proxy/Certificates/CachedCertificate.cs
similarity index 98%
rename from src/Titanium.Web.Proxy/Network/CachedCertificate.cs
rename to src/Titanium.Web.Proxy/Certificates/CachedCertificate.cs
index 112b17558..bd4440104 100644
--- a/src/Titanium.Web.Proxy/Network/CachedCertificate.cs
+++ b/src/Titanium.Web.Proxy/Certificates/CachedCertificate.cs
@@ -12,7 +12,7 @@ public CachedCertificate(X509Certificate2 certificate)
{
Certificate = certificate;
}
-
+
internal X509Certificate2 Certificate { get; }
///
diff --git a/src/Titanium.Web.Proxy/Network/CertificateManager.cs b/src/Titanium.Web.Proxy/Certificates/CertificateManager.cs
similarity index 99%
rename from src/Titanium.Web.Proxy/Network/CertificateManager.cs
rename to src/Titanium.Web.Proxy/Certificates/CertificateManager.cs
index c11faabf1..a59718587 100644
--- a/src/Titanium.Web.Proxy/Network/CertificateManager.cs
+++ b/src/Titanium.Web.Proxy/Certificates/CertificateManager.cs
@@ -25,7 +25,7 @@ public enum CertificateEngine
BouncyCastle = 0,
BouncyCastleFast = 2,
-
+
///
/// Uses Windows Certification Generation API and only valid in Windows OS.
/// Observed to be faster than BouncyCastle.
diff --git a/src/Titanium.Web.Proxy/Network/DefaultCertificateDiskCache.cs b/src/Titanium.Web.Proxy/Certificates/DefaultCertificateDiskCache.cs
similarity index 88%
rename from src/Titanium.Web.Proxy/Network/DefaultCertificateDiskCache.cs
rename to src/Titanium.Web.Proxy/Certificates/DefaultCertificateDiskCache.cs
index 070e71689..910df634e 100644
--- a/src/Titanium.Web.Proxy/Network/DefaultCertificateDiskCache.cs
+++ b/src/Titanium.Web.Proxy/Certificates/DefaultCertificateDiskCache.cs
@@ -6,13 +6,12 @@
namespace Titanium.Web.Proxy.Network
{
- internal sealed class DefaultCertificateDiskCache : ICertificateCache
+ public sealed class DefaultCertificateDiskCache : ICertificateCache
{
private const string defaultCertificateDirectoryName = "crts";
private const string defaultCertificateFileExtension = ".pfx";
private const string defaultRootCertificateFileName = "rootCert" + defaultCertificateFileExtension;
private string? rootCertificatePath;
- private string? certificatePath;
public X509Certificate2? LoadRootCertificate(string pathOrName, string password, X509KeyStorageFlags storageFlags)
{
@@ -56,8 +55,6 @@ public void Clear()
{
// do nothing
}
-
- certificatePath = null;
}
private X509Certificate2? loadCertificate(string path, string password, X509KeyStorageFlags storageFlags)
@@ -95,20 +92,15 @@ private string getRootCertificatePath(string pathOrName)
private string getCertificatePath(bool create)
{
- if (certificatePath == null)
- {
- string path = getRootCertificateDirectory();
-
- string certPath = Path.Combine(path, defaultCertificateDirectoryName);
- if (create && !Directory.Exists(certPath))
- {
- Directory.CreateDirectory(certPath);
- }
+ string path = getRootCertificateDirectory();
- certificatePath = certPath;
+ string certPath = Path.Combine(path, defaultCertificateDirectoryName);
+ if (create && !Directory.Exists(certPath))
+ {
+ Directory.CreateDirectory(certPath);
}
- return certificatePath;
+ return certPath;
}
private string getRootCertificateDirectory()
diff --git a/src/Titanium.Web.Proxy/Network/ICertificateCache.cs b/src/Titanium.Web.Proxy/Certificates/ICertificateCache.cs
similarity index 100%
rename from src/Titanium.Web.Proxy/Network/ICertificateCache.cs
rename to src/Titanium.Web.Proxy/Certificates/ICertificateCache.cs
diff --git a/src/Titanium.Web.Proxy/Network/Certificate/ICertificateMaker.cs b/src/Titanium.Web.Proxy/Certificates/ICertificateMaker.cs
similarity index 100%
rename from src/Titanium.Web.Proxy/Network/Certificate/ICertificateMaker.cs
rename to src/Titanium.Web.Proxy/Certificates/ICertificateMaker.cs
diff --git a/src/Titanium.Web.Proxy/Network/Certificate/WinCertificateMaker.cs b/src/Titanium.Web.Proxy/Certificates/WinCertificateMaker.cs
similarity index 100%
rename from src/Titanium.Web.Proxy/Network/Certificate/WinCertificateMaker.cs
rename to src/Titanium.Web.Proxy/Certificates/WinCertificateMaker.cs
diff --git a/src/Titanium.Web.Proxy/Compression/CompressionUtil.cs b/src/Titanium.Web.Proxy/Compression/CompressionUtil.cs
index 7cff47098..600c9afb6 100644
--- a/src/Titanium.Web.Proxy/Compression/CompressionUtil.cs
+++ b/src/Titanium.Web.Proxy/Compression/CompressionUtil.cs
@@ -1,5 +1,4 @@
-using System;
-using Titanium.Web.Proxy.Http;
+using Titanium.Web.Proxy.Http;
namespace Titanium.Web.Proxy.Compression
{
diff --git a/src/Titanium.Web.Proxy/Compression/HttpCompression.cs b/src/Titanium.Web.Proxy/Compression/HttpCompression.cs
index f14fb896e..f54ca4e3e 100644
--- a/src/Titanium.Web.Proxy/Compression/HttpCompression.cs
+++ b/src/Titanium.Web.Proxy/Compression/HttpCompression.cs
@@ -1,6 +1,4 @@
-using System;
-
-namespace Titanium.Web.Proxy.Compression
+namespace Titanium.Web.Proxy.Compression
{
internal enum HttpCompression
{
diff --git a/src/Titanium.Web.Proxy/EventArguments/BeforeSslAuthenticateEventArgs.cs b/src/Titanium.Web.Proxy/EventArguments/BeforeSslAuthenticateEventArgs.cs
index be9b0214f..3482061db 100644
--- a/src/Titanium.Web.Proxy/EventArguments/BeforeSslAuthenticateEventArgs.cs
+++ b/src/Titanium.Web.Proxy/EventArguments/BeforeSslAuthenticateEventArgs.cs
@@ -1,5 +1,4 @@
-using System;
-using System.Threading;
+using System.Threading;
using Titanium.Web.Proxy.Network.Tcp;
namespace Titanium.Web.Proxy.EventArguments
diff --git a/src/Titanium.Web.Proxy/EventArguments/CertificateSelectionEventArgs.cs b/src/Titanium.Web.Proxy/EventArguments/CertificateSelectionEventArgs.cs
index fb9ca4d51..3da92e710 100644
--- a/src/Titanium.Web.Proxy/EventArguments/CertificateSelectionEventArgs.cs
+++ b/src/Titanium.Web.Proxy/EventArguments/CertificateSelectionEventArgs.cs
@@ -1,5 +1,4 @@
-using System;
-using System.Security.Cryptography.X509Certificates;
+using System.Security.Cryptography.X509Certificates;
namespace Titanium.Web.Proxy.EventArguments
{
diff --git a/src/Titanium.Web.Proxy/EventArguments/CertificateValidationEventArgs.cs b/src/Titanium.Web.Proxy/EventArguments/CertificateValidationEventArgs.cs
index 89ba18bfc..50d2a7d53 100644
--- a/src/Titanium.Web.Proxy/EventArguments/CertificateValidationEventArgs.cs
+++ b/src/Titanium.Web.Proxy/EventArguments/CertificateValidationEventArgs.cs
@@ -1,5 +1,4 @@
-using System;
-using System.Net.Security;
+using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
namespace Titanium.Web.Proxy.EventArguments
diff --git a/src/Titanium.Web.Proxy/EventArguments/EmptyProxyEventArgs.cs b/src/Titanium.Web.Proxy/EventArguments/EmptyProxyEventArgs.cs
index 81d95d8c0..364c61285 100644
--- a/src/Titanium.Web.Proxy/EventArguments/EmptyProxyEventArgs.cs
+++ b/src/Titanium.Web.Proxy/EventArguments/EmptyProxyEventArgs.cs
@@ -1,5 +1,4 @@
-using System;
-using Titanium.Web.Proxy.Network.Tcp;
+using Titanium.Web.Proxy.Network.Tcp;
namespace Titanium.Web.Proxy.EventArguments
{
diff --git a/src/Titanium.Web.Proxy/EventArguments/LimitedStream.cs b/src/Titanium.Web.Proxy/EventArguments/LimitedStream.cs
index bef54b944..b525c575e 100644
--- a/src/Titanium.Web.Proxy/EventArguments/LimitedStream.cs
+++ b/src/Titanium.Web.Proxy/EventArguments/LimitedStream.cs
@@ -20,7 +20,7 @@ internal class LimitedStream : Stream
internal LimitedStream(IHttpStreamReader baseStream, IBufferPool bufferPool, bool isChunked,
long contentLength)
- {
+ {
this.baseReader = baseStream;
this.bufferPool = bufferPool;
this.isChunked = isChunked;
diff --git a/src/Titanium.Web.Proxy/EventArguments/SessionEventArgs.cs b/src/Titanium.Web.Proxy/EventArguments/SessionEventArgs.cs
index 5f426155a..278c3ffce 100644
--- a/src/Titanium.Web.Proxy/EventArguments/SessionEventArgs.cs
+++ b/src/Titanium.Web.Proxy/EventArguments/SessionEventArgs.cs
@@ -25,7 +25,9 @@ public class SessionEventArgs : SessionEventArgsBase
///
private bool reRequest;
- private WebSocketDecoder? webSocketDecoder;
+ private WebSocketDecoder? webSocketDecoderSend;
+
+ private WebSocketDecoder? webSocketDecoderReceive;
///
/// Is this session a HTTP/2 promise?
@@ -59,7 +61,12 @@ public bool ReRequest
}
}
- public WebSocketDecoder WebSocketDecoder => webSocketDecoder ??= new WebSocketDecoder(BufferPool);
+ [Obsolete("Use [WebSocketDecoderReceive] instead")]
+ public WebSocketDecoder WebSocketDecoder => WebSocketDecoderReceive;
+
+ public WebSocketDecoder WebSocketDecoderSend => webSocketDecoderSend ??= new WebSocketDecoder(BufferPool);
+
+ public WebSocketDecoder WebSocketDecoderReceive => webSocketDecoderReceive ??= new WebSocketDecoder(BufferPool);
///
/// Occurs when multipart request part sent.
@@ -588,7 +595,7 @@ public void Respond(Response response, bool closeServerConnection = false)
{
HttpClient.Request.Locked = true;
HttpClient.Request.CancelRequest = true;
-
+
// set new response.
HttpClient.Response = response;
HttpClient.Response.Locked = true;
diff --git a/src/Titanium.Web.Proxy/Extensions/StreamExtensions.cs b/src/Titanium.Web.Proxy/Extensions/StreamExtensions.cs
index bbe52459b..e34c577b9 100644
--- a/src/Titanium.Web.Proxy/Extensions/StreamExtensions.cs
+++ b/src/Titanium.Web.Proxy/Extensions/StreamExtensions.cs
@@ -62,7 +62,7 @@ internal static async Task CopyToAsync(this Stream input, Stream output, Action<
}
}
- internal static async Task WithCancellation(this Task task, CancellationToken cancellationToken) where T : struct
+ internal static async Task WithCancellation(this Task task, CancellationToken cancellationToken) where T : struct
{
var tcs = new TaskCompletionSource();
using (cancellationToken.Register(s => ((TaskCompletionSource)s).TrySetResult(true), tcs))
diff --git a/src/Titanium.Web.Proxy/Extensions/TcpExtensions.cs b/src/Titanium.Web.Proxy/Extensions/TcpExtensions.cs
index 4e7a41aea..4c0c723f7 100644
--- a/src/Titanium.Web.Proxy/Extensions/TcpExtensions.cs
+++ b/src/Titanium.Web.Proxy/Extensions/TcpExtensions.cs
@@ -1,5 +1,4 @@
-using System;
-using System.Net.Sockets;
+using System.Net.Sockets;
namespace Titanium.Web.Proxy.Extensions
{
diff --git a/src/Titanium.Web.Proxy/Helpers/HttpClientStream.cs b/src/Titanium.Web.Proxy/Helpers/HttpClientStream.cs
index 594635e36..7a13157e8 100644
--- a/src/Titanium.Web.Proxy/Helpers/HttpClientStream.cs
+++ b/src/Titanium.Web.Proxy/Helpers/HttpClientStream.cs
@@ -1,5 +1,4 @@
-using System;
-using System.IO;
+using System.IO;
using System.Threading;
using System.Threading.Tasks;
using Titanium.Web.Proxy.Http;
@@ -12,7 +11,7 @@ internal sealed class HttpClientStream : HttpStream
{
public TcpClientConnection Connection { get; }
- internal HttpClientStream(TcpClientConnection connection, Stream stream, IBufferPool bufferPool, CancellationToken cancellationToken)
+ internal HttpClientStream(TcpClientConnection connection, Stream stream, IBufferPool bufferPool, CancellationToken cancellationToken)
: base(stream, bufferPool, cancellationToken)
{
Connection = connection;
@@ -27,10 +26,10 @@ internal HttpClientStream(TcpClientConnection connection, Stream stream, IBuffer
internal async ValueTask WriteResponseAsync(Response response, CancellationToken cancellationToken = default)
{
var headerBuilder = new HeaderBuilder();
-
+
// Write back response status to client
headerBuilder.WriteResponseLine(response.HttpVersion, response.StatusCode, response.StatusDescription);
-
+
await WriteAsync(response, headerBuilder, cancellationToken);
}
diff --git a/src/Titanium.Web.Proxy/Helpers/HttpStream.cs b/src/Titanium.Web.Proxy/Helpers/HttpStream.cs
index 3cafc39a7..06c7aa844 100644
--- a/src/Titanium.Web.Proxy/Helpers/HttpStream.cs
+++ b/src/Titanium.Web.Proxy/Helpers/HttpStream.cs
@@ -9,6 +9,7 @@
using System.Threading.Tasks;
using Titanium.Web.Proxy.Compression;
using Titanium.Web.Proxy.EventArguments;
+using Titanium.Web.Proxy.Exceptions;
using Titanium.Web.Proxy.Extensions;
using Titanium.Web.Proxy.Http;
using Titanium.Web.Proxy.Models;
@@ -1017,7 +1018,7 @@ public async Task CopyBodyAsync(RequestResponseBase requestResponse, bool useOri
string? contentEncoding = useOriginalHeaderValues ? requestResponse.OriginalContentEncoding : requestResponse.ContentEncoding;
Stream s = limitedStream = new LimitedStream(this, bufferPool, isChunked, contentLength);
-
+
if (transformation == TransformationMode.Uncompress && contentEncoding != null)
{
s = decompressStream = DecompressionFactory.Create(CompressionUtil.CompressionNameToEnum(contentEncoding), s);
@@ -1102,13 +1103,16 @@ private async Task copyBodyChunkedAsync(IHttpStreamWriter writer, Action= 0)
{
chunkHead = chunkHead.Substring(0, idx);
}
- int chunkSize = int.Parse(chunkHead, NumberStyles.HexNumber);
+ if (!int.TryParse(chunkHead, NumberStyles.HexNumber, null, out int chunkSize))
+ {
+ throw new ProxyHttpException($"Invalid chunk length: '{chunkHead}'", null, null);
+ }
await writer.WriteLineAsync(chunkHead, cancellationToken);
diff --git a/src/Titanium.Web.Proxy/Helpers/KnownMethod.cs b/src/Titanium.Web.Proxy/Helpers/KnownMethod.cs
index eda343753..c22377a15 100644
--- a/src/Titanium.Web.Proxy/Helpers/KnownMethod.cs
+++ b/src/Titanium.Web.Proxy/Helpers/KnownMethod.cs
@@ -43,7 +43,7 @@ internal enum KnownMethod
// RFC 4437: Web Distributed Authoring and Versioning (WebDAV): Redirect Reference Resources
Mkredirectref,
Updateredirectref,
-
+
// RFC 4791: Calendaring Extensions to WebDAV (CalDAV)
Mkcalendar,
diff --git a/src/Titanium.Web.Proxy/Net45Compatibility.cs b/src/Titanium.Web.Proxy/Helpers/Net45Compatibility.cs
similarity index 72%
rename from src/Titanium.Web.Proxy/Net45Compatibility.cs
rename to src/Titanium.Web.Proxy/Helpers/Net45Compatibility.cs
index 834996452..e183d8fde 100644
--- a/src/Titanium.Web.Proxy/Net45Compatibility.cs
+++ b/src/Titanium.Web.Proxy/Helpers/Net45Compatibility.cs
@@ -8,7 +8,7 @@ class Net45Compatibility
{
public static byte[] EmptyArray = new byte[0];
- public static Task CompletedTask = new Task(() => { });
+ public static Task CompletedTask = Task.FromResult