Customize TcpClient used for server connection upon create.
Event to override the default verification logic of remote SSL certificate received during authentication.
@@ -1975,7 +2007,7 @@
Event Type
Improve this Doc
- View Source
+ View Source
ServerConnectionCountChanged
Event occurs when server connection count changed.
diff --git a/docs/api/Titanium.Web.Proxy.StreamExtended.ClientHelloInfo.html b/docs/api/Titanium.Web.Proxy.StreamExtended.ClientHelloInfo.html
index 87126fef5..eaf002e81 100644
--- a/docs/api/Titanium.Web.Proxy.StreamExtended.ClientHelloInfo.html
+++ b/docs/api/Titanium.Web.Proxy.StreamExtended.ClientHelloInfo.html
@@ -125,7 +125,7 @@
- View Source
+ View Source
diff --git a/docs/api/Titanium.Web.Proxy.StreamExtended.Models.SslExtension.html b/docs/api/Titanium.Web.Proxy.StreamExtended.Models.SslExtension.html
index a171dc480..ab6fc9c75 100644
--- a/docs/api/Titanium.Web.Proxy.StreamExtended.Models.SslExtension.html
+++ b/docs/api/Titanium.Web.Proxy.StreamExtended.Models.SslExtension.html
@@ -125,19 +125,19 @@
Constructors
|
- Improve this Doc
+ Improve this Doc
- View Source
+ View Source
-
SslExtension(Int32, String, String, Int32)
+
SslExtension(Int32, ReadOnlyMemory<Byte>, Int32)
Declaration
-
public SslExtension(int value, string name, string data, int position)
+
public SslExtension(int value, ReadOnlyMemory<byte> data, int position)
Parameters
@@ -156,13 +156,7 @@ Parameters
- String |
- name |
- The name.
- |
-
-
- String |
+ ReadOnlyMemory<Byte> |
data |
The data.
|
@@ -182,7 +176,7 @@ Properties
Improve this Doc
- View Source
+ View Source
Data
@@ -214,7 +208,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
Name
@@ -246,7 +240,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
Position
@@ -278,7 +272,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
Value
@@ -316,7 +310,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
diff --git a/docs/api/Titanium.Web.Proxy.StreamExtended.ServerHelloInfo.html b/docs/api/Titanium.Web.Proxy.StreamExtended.ServerHelloInfo.html
index 0f1bbff72..72a984f6c 100644
--- a/docs/api/Titanium.Web.Proxy.StreamExtended.ServerHelloInfo.html
+++ b/docs/api/Titanium.Web.Proxy.StreamExtended.ServerHelloInfo.html
@@ -125,7 +125,7 @@ Constructors
Improve this Doc
- View Source
+ View Source
ServerHelloInfo(Int32, Int32, Int32, Byte[], Byte[], Int32, Int32)
@@ -189,7 +189,7 @@ Properties
Improve this Doc
- View Source
+ View Source
CipherSuite
@@ -219,7 +219,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
CompressionMethod
@@ -249,7 +249,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
Extensions
@@ -279,7 +279,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
HandshakeVersion
@@ -309,7 +309,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
MajorVersion
@@ -339,7 +339,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
MinorVersion
@@ -369,7 +369,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
Random
@@ -399,7 +399,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
SessionId
@@ -429,7 +429,7 @@ Property Value
Improve this Doc
- View Source
+ View Source
Time
@@ -461,7 +461,7 @@ Methods
Improve this Doc
- View Source
+ View Source
ToString()
@@ -501,7 +501,7 @@ Overrides
Improve this Doc
- View Source
+ View Source
diff --git a/docs/index.json b/docs/index.json
index 31a57fe72..b703a47fc 100644
--- a/docs/index.json
+++ b/docs/index.json
@@ -317,7 +317,7 @@
"api/Titanium.Web.Proxy.ProxyServer.html": {
"href": "api/Titanium.Web.Proxy.ProxyServer.html",
"title": "Class ProxyServer | Titanium Web Proxy",
- "keywords": "Class ProxyServer This class is the backbone of proxy. One can create as many instances as needed. However care should be taken to avoid using the same listening ports across multiple instances. Inheritance Object ProxyServer 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 Assembly : Titanium.Web.Proxy.dll Syntax public class ProxyServer : IDisposable Constructors | Improve this Doc View Source ProxyServer(Boolean, Boolean, Boolean) Initializes a new instance of ProxyServer class with provided parameters. Declaration public ProxyServer(bool userTrustRootCertificate = true, bool machineTrustRootCertificate = false, 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 ProxyServer(String, String, Boolean, Boolean, Boolean) Initializes a new instance of ProxyServer class with provided parameters. Declaration public ProxyServer(string rootCertificateName, string rootCertificateIssuerName, bool userTrustRootCertificate = true, bool machineTrustRootCertificate = false, bool trustRootCertificateAsAdmin = false) Parameters Type Name Description String rootCertificateName Name of the root certificate. String rootCertificateIssuerName Name of the root certificate issuer. 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? Properties | Improve this Doc View Source BufferPool The buffer pool used throughout this proxy instance. Set custom implementations by implementing this interface. By default this uses DefaultBufferPool implementation available in StreamExtended library package. Buffer size should be at least 10 bytes. Declaration public IBufferPool BufferPool { get; set; } Property Value Type Description IBufferPool | Improve this Doc View Source CertificateManager Manages certificates used by this proxy. Declaration public CertificateManager CertificateManager { get; } Property Value Type Description CertificateManager | Improve this Doc View Source CheckCertificateRevocation Should we check for certificate revocation during SSL authentication to servers Note: If enabled can reduce performance. Defaults to false. Declaration public X509RevocationMode CheckCertificateRevocation { get; set; } Property Value Type Description X509RevocationMode | Improve this Doc View Source ClientConnectionCount Total number of active client connections. Declaration public int ClientConnectionCount { get; } Property Value Type Description Int32 | Improve this Doc View Source ConnectionTimeOutSeconds Seconds client/server connection are to be kept alive when waiting for read/write to complete. This will also determine the pool eviction time when connection pool is enabled. Default value is 60 seconds. Declaration public int ConnectionTimeOutSeconds { get; set; } Property Value Type Description Int32 | Improve this Doc View Source ConnectTimeOutSeconds Seconds server connection are to wait for connection to be established. Default value is 20 seconds. Declaration public int ConnectTimeOutSeconds { get; set; } Property Value Type Description Int32 | Improve this Doc View Source CustomUpStreamProxyFailureFunc A callback to provide a chance for an upstream proxy failure to be handled by a new upstream proxy. User should return the ExternalProxy object with valid credentials or null. Declaration public Func> CustomUpStreamProxyFailureFunc { get; set; } Property Value Type Description Func < SessionEventArgsBase , Task < IExternalProxy >> | Improve this Doc View Source Enable100ContinueBehaviour Does this proxy uses the HTTP protocol 100 continue behaviour strictly? Broken 100 continue implementations on server/client may cause problems if enabled. Defaults to false. Declaration public bool Enable100ContinueBehaviour { get; set; } Property Value Type Description Boolean | Improve this Doc View Source EnableConnectionPool Should we enable experimental server connection pool. Defaults to false. When you enable connection pooling, instead of creating a new TCP connection to server for each client TCP connection, we check if a server connection is available in our cached pool. If it is available in our pool, created from earlier requests to the same server, we will reuse those idle connections. There is also a ConnectionTimeOutSeconds parameter, which determine the eviction time for inactive server connections. This will help to reduce TCP connection establishment cost, both the wall clock time and CPU cycles. Declaration public bool EnableConnectionPool { get; set; } Property Value Type Description Boolean | Improve this Doc View Source EnableHttp2 Enable disable HTTP/2 support. Warning: HTTP/2 support is very limited only enabled when both client and server supports it (no protocol changing in proxy) cannot modify the request/response (e.g header modifications in BeforeRequest/Response events are ignored) Declaration public bool EnableHttp2 { get; set; } Property Value Type Description Boolean | Improve this Doc View Source EnableTcpServerConnectionPrefetch Should we enable tcp server connection prefetching? When enabled, as soon as we receive a client connection we concurrently initiate corresponding server connection process using CONNECT hostname or SNI hostname on a separate task so that after parsing client request we will have the server connection immediately ready or in the process of getting ready. If a server connection is available in cache then this prefetch task will immediately return with the available connection from cache. Defaults to true. Declaration public bool EnableTcpServerConnectionPrefetch { get; set; } Property Value Type Description Boolean | Improve this Doc View Source EnableWinAuth Enable disable Windows Authentication (NTLM/Kerberos). Note: NTLM/Kerberos will always send local credentials of current user running the proxy process. This is because a man in middle attack with Windows domain authentication is not currently supported. Defaults to false. Declaration public bool EnableWinAuth { get; set; } Property Value Type Description Boolean | Improve this Doc View Source ExceptionFunc Callback for error events in this proxy instance. Declaration public ExceptionHandler ExceptionFunc { get; set; } Property Value Type Description ExceptionHandler | Improve this Doc View Source ForwardToUpstreamGateway Gets or sets a value indicating whether requests will be chained to upstream gateway. Defaults to false. Declaration public bool ForwardToUpstreamGateway { get; set; } Property Value Type Description Boolean | Improve this Doc View Source GetCustomUpStreamProxyFunc A callback to provide authentication credentials for up stream proxy this proxy is using for HTTP(S) requests. User should return the ExternalProxy object with valid credentials. Declaration public Func> GetCustomUpStreamProxyFunc { get; set; } Property Value Type Description Func < SessionEventArgsBase , Task < IExternalProxy >> | Improve this Doc View Source MaxCachedConnections Maximum number of concurrent connections per remote host in cache. Only valid when connection pooling is enabled. Default value is 4. Declaration public int MaxCachedConnections { get; set; } Property Value Type Description Int32 | Improve this Doc View Source NetworkFailureRetryAttempts Number of times to retry upon network failures when connection pool is enabled. Declaration public int NetworkFailureRetryAttempts { get; set; } Property Value Type Description Int32 | Improve this Doc View Source NoDelay Gets or sets a Boolean value that specifies whether server and client stream Sockets are using the Nagle algorithm. Defaults to true, no nagle algorithm is used. Declaration public bool NoDelay { get; set; } Property Value Type Description Boolean | Improve this Doc View Source ProxyAuthenticationRealm Realm used during Proxy Basic Authentication. Declaration public string ProxyAuthenticationRealm { get; set; } Property Value Type Description String | Improve this Doc View Source ProxyAuthenticationSchemes A collection of scheme types, e.g. basic, NTLM, Kerberos, Negotiate, to return if scheme authentication is required. Works in relation with ProxySchemeAuthenticateFunc. Declaration public IEnumerable ProxyAuthenticationSchemes { get; set; } Property Value Type Description IEnumerable < String > | Improve this Doc View Source ProxyBasicAuthenticateFunc A callback to authenticate proxy clients via basic authentication. Parameters are username and password as provided by client. Should return true for successful authentication. Declaration public Func> ProxyBasicAuthenticateFunc { get; set; } Property Value Type Description Func < SessionEventArgsBase , String , String , Task < Boolean >> | Improve this Doc View Source ProxyEndPoints A list of IpAddress and port this proxy is listening to. Declaration public List ProxyEndPoints { get; set; } Property Value Type Description List < ProxyEndPoint > | Improve this Doc View Source ProxyRunning Is the proxy currently running? Declaration public bool ProxyRunning { get; } Property Value Type Description Boolean | Improve this Doc View Source ProxySchemeAuthenticateFunc A pluggable callback to authenticate clients by scheme instead of requiring basic authentication through ProxyBasicAuthenticateFunc. Parameters are current working session, schemeType, and token as provided by a calling client. Should return success for successful authentication, continuation if the package requests, or failure. Declaration public Func> ProxySchemeAuthenticateFunc { get; set; } Property Value Type Description Func < SessionEventArgsBase , String , String , Task < ProxyAuthenticationContext >> | Improve this Doc View Source ReuseSocket Should we reuse client/server tcp sockets. Default is true (disabled for linux/macOS due to bug in .Net core). Declaration public bool ReuseSocket { get; set; } Property Value Type Description Boolean | Improve this Doc View Source ServerConnectionCount Total number of active server connections. Declaration public int ServerConnectionCount { get; } Property Value Type Description Int32 | Improve this Doc View Source SupportedSslProtocols List of supported Ssl versions. Declaration public SslProtocols SupportedSslProtocols { get; set; } Property Value Type Description SslProtocols | Improve this Doc View Source TcpTimeWaitSeconds Number of seconds to linger when Tcp connection is in TIME_WAIT state. Default value is 30. Declaration public int TcpTimeWaitSeconds { get; set; } Property Value Type Description Int32 | Improve this Doc View Source ThreadPoolWorkerThread Customize the minimum ThreadPool size (increase it on a server) Declaration public int ThreadPoolWorkerThread { get; set; } Property Value Type Description Int32 | Improve this Doc View Source UpStreamEndPoint Local adapter/NIC endpoint where proxy makes request via. Defaults via any IP addresses of this machine. Declaration public IPEndPoint UpStreamEndPoint { get; set; } Property Value Type Description IPEndPoint | Improve this Doc View Source UpStreamHttpProxy External proxy used for Http requests. Declaration public IExternalProxy UpStreamHttpProxy { get; set; } Property Value Type Description IExternalProxy | Improve this Doc View Source UpStreamHttpsProxy External proxy used for Https requests. Declaration public IExternalProxy UpStreamHttpsProxy { get; set; } Property Value Type Description IExternalProxy | Improve this Doc View Source UpstreamProxyConfigurationScript If set, the upstream proxy will be detected by a script that will be loaded from the provided Uri Declaration public Uri UpstreamProxyConfigurationScript { get; set; } Property Value Type Description Uri Methods | Improve this Doc View Source AddEndPoint(ProxyEndPoint) Add a proxy end point. Declaration public void AddEndPoint(ProxyEndPoint endPoint) Parameters Type Name Description ProxyEndPoint endPoint The proxy endpoint. | Improve this Doc View Source DisableAllSystemProxies() Clear all proxy settings for current machine. Declaration public void DisableAllSystemProxies() | Improve this Doc View Source DisableSystemHttpProxy() Clear HTTP proxy settings of current machine. Declaration public void DisableSystemHttpProxy() | Improve this Doc View Source DisableSystemHttpsProxy() Clear HTTPS proxy settings of current machine. Declaration public void DisableSystemHttpsProxy() | Improve this Doc View Source DisableSystemProxy(ProxyProtocolType) Clear the specified proxy setting for current machine. Declaration public void DisableSystemProxy(ProxyProtocolType protocolType) Parameters Type Name Description ProxyProtocolType protocolType | Improve this Doc View Source Dispose() Declaration public void Dispose() | Improve this Doc View Source Dispose(Boolean) Declaration protected virtual void Dispose(bool disposing) Parameters Type Name Description Boolean disposing | Improve this Doc View Source Finalize() Declaration protected void Finalize() | Improve this Doc View Source RemoveEndPoint(ProxyEndPoint) Remove a proxy end point. Will throw error if the end point doesn't exist. Declaration public void RemoveEndPoint(ProxyEndPoint endPoint) Parameters Type Name Description ProxyEndPoint endPoint The existing endpoint to remove. | Improve this Doc View Source RestoreOriginalProxySettings() Restores the original proxy settings. Declaration public void RestoreOriginalProxySettings() | Improve this Doc View Source SetAsSystemHttpProxy(ExplicitProxyEndPoint) Set the given explicit end point as the default proxy server for current machine. Declaration public void SetAsSystemHttpProxy(ExplicitProxyEndPoint endPoint) Parameters Type Name Description ExplicitProxyEndPoint endPoint The explicit endpoint. | Improve this Doc View Source SetAsSystemHttpsProxy(ExplicitProxyEndPoint) Set the given explicit end point as the default proxy server for current machine. Declaration public void SetAsSystemHttpsProxy(ExplicitProxyEndPoint endPoint) Parameters Type Name Description ExplicitProxyEndPoint endPoint The explicit endpoint. | Improve this Doc View Source SetAsSystemProxy(ExplicitProxyEndPoint, ProxyProtocolType) Set the given explicit end point as the default proxy server for current machine. Declaration public void SetAsSystemProxy(ExplicitProxyEndPoint endPoint, ProxyProtocolType protocolType) Parameters Type Name Description ExplicitProxyEndPoint endPoint The explicit endpoint. ProxyProtocolType protocolType The proxy protocol type. | Improve this Doc View Source Start(Boolean) Start this proxy server instance. Declaration public void Start(bool changeSystemProxySettings = true) Parameters Type Name Description Boolean changeSystemProxySettings Whether or not clear any system proxy settings which is pointing to our own endpoint (causing a cycle). E.g due to ungracious proxy shutdown before. | Improve this Doc View Source Stop() Stop this proxy server instance. Declaration public void Stop() Events | Improve this Doc View Source AfterResponse Intercept after response event from server. Declaration public event AsyncEventHandler AfterResponse Event Type Type Description AsyncEventHandler < SessionEventArgs > | Improve this Doc View Source BeforeRequest Intercept request event to server. Declaration public event AsyncEventHandler BeforeRequest Event Type Type Description AsyncEventHandler < SessionEventArgs > | Improve this Doc View Source BeforeResponse Intercept response event from server. Declaration public event AsyncEventHandler BeforeResponse Event Type Type Description AsyncEventHandler < SessionEventArgs > | Improve this Doc View Source BeforeUpStreamConnectRequest Intercept connect request sent to upstream proxy. Declaration public event AsyncEventHandler BeforeUpStreamConnectRequest Event Type Type Description AsyncEventHandler < ConnectRequest > | Improve this Doc View Source ClientCertificateSelectionCallback Event to override client certificate selection during mutual SSL authentication. Declaration public event AsyncEventHandler ClientCertificateSelectionCallback Event Type Type Description AsyncEventHandler < CertificateSelectionEventArgs > | Improve this Doc View Source ClientConnectionCountChanged Event occurs when client connection count changed. Declaration public event EventHandler ClientConnectionCountChanged Event Type Type Description EventHandler | Improve this Doc View Source OnClientConnectionCreate Customize TcpClient used for client connection upon create. Declaration public event AsyncEventHandler OnClientConnectionCreate Event Type Type Description AsyncEventHandler < Socket > | Improve this Doc View Source OnServerConnectionCreate Customize TcpClient used for server connection upon create. Declaration public event AsyncEventHandler OnServerConnectionCreate Event Type Type Description AsyncEventHandler < Socket > | Improve this Doc View Source ServerCertificateValidationCallback Event to override the default verification logic of remote SSL certificate received during authentication. Declaration public event AsyncEventHandler ServerCertificateValidationCallback Event Type Type Description AsyncEventHandler < CertificateValidationEventArgs > | Improve this Doc View Source ServerConnectionCountChanged Event occurs when server connection count changed. Declaration public event EventHandler ServerConnectionCountChanged Event Type Type Description EventHandler Implements System.IDisposable"
+ "keywords": "Class ProxyServer This class is the backbone of proxy. One can create as many instances as needed. However care should be taken to avoid using the same listening ports across multiple instances. Inheritance Object ProxyServer 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 Assembly : Titanium.Web.Proxy.dll Syntax public class ProxyServer : IDisposable Constructors | Improve this Doc View Source ProxyServer(Boolean, Boolean, Boolean) Initializes a new instance of ProxyServer class with provided parameters. Declaration public ProxyServer(bool userTrustRootCertificate = true, bool machineTrustRootCertificate = false, 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 ProxyServer(String, String, Boolean, Boolean, Boolean) Initializes a new instance of ProxyServer class with provided parameters. Declaration public ProxyServer(string rootCertificateName, string rootCertificateIssuerName, bool userTrustRootCertificate = true, bool machineTrustRootCertificate = false, bool trustRootCertificateAsAdmin = false) Parameters Type Name Description String rootCertificateName Name of the root certificate. String rootCertificateIssuerName Name of the root certificate issuer. 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? Properties | Improve this Doc View Source BufferPool The buffer pool used throughout this proxy instance. Set custom implementations by implementing this interface. By default this uses DefaultBufferPool implementation available in StreamExtended library package. Buffer size should be at least 10 bytes. Declaration public IBufferPool BufferPool { get; set; } Property Value Type Description IBufferPool | Improve this Doc View Source CertificateManager Manages certificates used by this proxy. Declaration public CertificateManager CertificateManager { get; } Property Value Type Description CertificateManager | Improve this Doc View Source CheckCertificateRevocation Should we check for certificate revocation during SSL authentication to servers Note: If enabled can reduce performance. Defaults to false. Declaration public X509RevocationMode CheckCertificateRevocation { get; set; } Property Value Type Description X509RevocationMode | Improve this Doc View Source ClientConnectionCount Total number of active client connections. Declaration public int ClientConnectionCount { get; } Property Value Type Description Int32 | Improve this Doc View Source ConnectionTimeOutSeconds Seconds client/server connection are to be kept alive when waiting for read/write to complete. This will also determine the pool eviction time when connection pool is enabled. Default value is 60 seconds. Declaration public int ConnectionTimeOutSeconds { get; set; } Property Value Type Description Int32 | Improve this Doc View Source ConnectTimeOutSeconds Seconds server connection are to wait for connection to be established. Default value is 20 seconds. Declaration public int ConnectTimeOutSeconds { get; set; } Property Value Type Description Int32 | Improve this Doc View Source CustomUpStreamProxyFailureFunc A callback to provide a chance for an upstream proxy failure to be handled by a new upstream proxy. User should return the ExternalProxy object with valid credentials or null. Declaration public Func> CustomUpStreamProxyFailureFunc { get; set; } Property Value Type Description Func < SessionEventArgsBase , Task < IExternalProxy >> | Improve this Doc View Source Enable100ContinueBehaviour Does this proxy uses the HTTP protocol 100 continue behaviour strictly? Broken 100 continue implementations on server/client may cause problems if enabled. Defaults to false. Declaration public bool Enable100ContinueBehaviour { get; set; } Property Value Type Description Boolean | Improve this Doc View Source EnableConnectionPool Should we enable experimental server connection pool. Defaults to false. When you enable connection pooling, instead of creating a new TCP connection to server for each client TCP connection, we check if a server connection is available in our cached pool. If it is available in our pool, created from earlier requests to the same server, we will reuse those idle connections. There is also a ConnectionTimeOutSeconds parameter, which determine the eviction time for inactive server connections. This will help to reduce TCP connection establishment cost, both the wall clock time and CPU cycles. Declaration public bool EnableConnectionPool { get; set; } Property Value Type Description Boolean | Improve this Doc View Source EnableHttp2 Enable disable HTTP/2 support. Warning: HTTP/2 support is very limited only enabled when both client and server supports it (no protocol changing in proxy) cannot modify the request/response (e.g header modifications in BeforeRequest/Response events are ignored) Declaration public bool EnableHttp2 { get; set; } Property Value Type Description Boolean | Improve this Doc View Source EnableTcpServerConnectionPrefetch Should we enable tcp server connection prefetching? When enabled, as soon as we receive a client connection we concurrently initiate corresponding server connection process using CONNECT hostname or SNI hostname on a separate task so that after parsing client request we will have the server connection immediately ready or in the process of getting ready. If a server connection is available in cache then this prefetch task will immediately return with the available connection from cache. Defaults to true. Declaration public bool EnableTcpServerConnectionPrefetch { get; set; } Property Value Type Description Boolean | Improve this Doc View Source EnableWinAuth Enable disable Windows Authentication (NTLM/Kerberos). Note: NTLM/Kerberos will always send local credentials of current user running the proxy process. This is because a man in middle attack with Windows domain authentication is not currently supported. Defaults to false. Declaration public bool EnableWinAuth { get; set; } Property Value Type Description Boolean | Improve this Doc View Source ExceptionFunc Callback for error events in this proxy instance. Declaration public ExceptionHandler ExceptionFunc { get; set; } Property Value Type Description ExceptionHandler | Improve this Doc View Source ForwardToUpstreamGateway Gets or sets a value indicating whether requests will be chained to upstream gateway. Defaults to false. Declaration public bool ForwardToUpstreamGateway { get; set; } Property Value Type Description Boolean | Improve this Doc View Source GetCustomUpStreamProxyFunc A callback to provide authentication credentials for up stream proxy this proxy is using for HTTP(S) requests. User should return the ExternalProxy object with valid credentials. Declaration public Func> GetCustomUpStreamProxyFunc { get; set; } Property Value Type Description Func < SessionEventArgsBase , Task < IExternalProxy >> | Improve this Doc View Source MaxCachedConnections Maximum number of concurrent connections per remote host in cache. Only valid when connection pooling is enabled. Default value is 4. Declaration public int MaxCachedConnections { get; set; } Property Value Type Description Int32 | Improve this Doc View Source NetworkFailureRetryAttempts Number of times to retry upon network failures when connection pool is enabled. Declaration public int NetworkFailureRetryAttempts { get; set; } Property Value Type Description Int32 | Improve this Doc View Source NoDelay Gets or sets a Boolean value that specifies whether server and client stream Sockets are using the Nagle algorithm. Defaults to true, no nagle algorithm is used. Declaration public bool NoDelay { get; set; } Property Value Type Description Boolean | Improve this Doc View Source ProxyAuthenticationRealm Realm used during Proxy Basic Authentication. Declaration public string ProxyAuthenticationRealm { get; set; } Property Value Type Description String | Improve this Doc View Source ProxyAuthenticationSchemes A collection of scheme types, e.g. basic, NTLM, Kerberos, Negotiate, to return if scheme authentication is required. Works in relation with ProxySchemeAuthenticateFunc. Declaration public IEnumerable ProxyAuthenticationSchemes { get; set; } Property Value Type Description IEnumerable < String > | Improve this Doc View Source ProxyBasicAuthenticateFunc A callback to authenticate proxy clients via basic authentication. Parameters are username and password as provided by client. Should return true for successful authentication. Declaration public Func> ProxyBasicAuthenticateFunc { get; set; } Property Value Type Description Func < SessionEventArgsBase , String , String , Task < Boolean >> | Improve this Doc View Source ProxyEndPoints A list of IpAddress and port this proxy is listening to. Declaration public List ProxyEndPoints { get; set; } Property Value Type Description List < ProxyEndPoint > | Improve this Doc View Source ProxyRunning Is the proxy currently running? Declaration public bool ProxyRunning { get; } Property Value Type Description Boolean | Improve this Doc View Source ProxySchemeAuthenticateFunc A pluggable callback to authenticate clients by scheme instead of requiring basic authentication through ProxyBasicAuthenticateFunc. Parameters are current working session, schemeType, and token as provided by a calling client. Should return success for successful authentication, continuation if the package requests, or failure. Declaration public Func> ProxySchemeAuthenticateFunc { get; set; } Property Value Type Description Func < SessionEventArgsBase , String , String , Task < ProxyAuthenticationContext >> | Improve this Doc View Source ReuseSocket Should we reuse client/server tcp sockets. Default is true (disabled for linux/macOS due to bug in .Net core). Declaration public bool ReuseSocket { get; set; } Property Value Type Description Boolean | Improve this Doc View Source ServerConnectionCount Total number of active server connections. Declaration public int ServerConnectionCount { get; } Property Value Type Description Int32 | Improve this Doc View Source SupportedServerSslProtocols List of supported Server Ssl versions. Using SslProtocol.None means to require the same SSL protocol as the proxy client. Declaration public SslProtocols SupportedServerSslProtocols { get; set; } Property Value Type Description SslProtocols | Improve this Doc View Source SupportedSslProtocols List of supported Ssl versions. Declaration public SslProtocols SupportedSslProtocols { get; set; } Property Value Type Description SslProtocols | Improve this Doc View Source TcpTimeWaitSeconds Number of seconds to linger when Tcp connection is in TIME_WAIT state. Default value is 30. Declaration public int TcpTimeWaitSeconds { get; set; } Property Value Type Description Int32 | Improve this Doc View Source ThreadPoolWorkerThread Customize the minimum ThreadPool size (increase it on a server) Declaration public int ThreadPoolWorkerThread { get; set; } Property Value Type Description Int32 | Improve this Doc View Source UpStreamEndPoint Local adapter/NIC endpoint where proxy makes request via. Defaults via any IP addresses of this machine. Declaration public IPEndPoint UpStreamEndPoint { get; set; } Property Value Type Description IPEndPoint | Improve this Doc View Source UpStreamHttpProxy External proxy used for Http requests. Declaration public IExternalProxy UpStreamHttpProxy { get; set; } Property Value Type Description IExternalProxy | Improve this Doc View Source UpStreamHttpsProxy External proxy used for Https requests. Declaration public IExternalProxy UpStreamHttpsProxy { get; set; } Property Value Type Description IExternalProxy | Improve this Doc View Source UpstreamProxyConfigurationScript If set, the upstream proxy will be detected by a script that will be loaded from the provided Uri Declaration public Uri UpstreamProxyConfigurationScript { get; set; } Property Value Type Description Uri Methods | Improve this Doc View Source AddEndPoint(ProxyEndPoint) Add a proxy end point. Declaration public void AddEndPoint(ProxyEndPoint endPoint) Parameters Type Name Description ProxyEndPoint endPoint The proxy endpoint. | Improve this Doc View Source DisableAllSystemProxies() Clear all proxy settings for current machine. Declaration public void DisableAllSystemProxies() | Improve this Doc View Source DisableSystemHttpProxy() Clear HTTP proxy settings of current machine. Declaration public void DisableSystemHttpProxy() | Improve this Doc View Source DisableSystemHttpsProxy() Clear HTTPS proxy settings of current machine. Declaration public void DisableSystemHttpsProxy() | Improve this Doc View Source DisableSystemProxy(ProxyProtocolType) Clear the specified proxy setting for current machine. Declaration public void DisableSystemProxy(ProxyProtocolType protocolType) Parameters Type Name Description ProxyProtocolType protocolType | Improve this Doc View Source Dispose() Declaration public void Dispose() | Improve this Doc View Source Dispose(Boolean) Declaration protected virtual void Dispose(bool disposing) Parameters Type Name Description Boolean disposing | Improve this Doc View Source Finalize() Declaration protected void Finalize() | Improve this Doc View Source RemoveEndPoint(ProxyEndPoint) Remove a proxy end point. Will throw error if the end point doesn't exist. Declaration public void RemoveEndPoint(ProxyEndPoint endPoint) Parameters Type Name Description ProxyEndPoint endPoint The existing endpoint to remove. | Improve this Doc View Source RestoreOriginalProxySettings() Restores the original proxy settings. Declaration public void RestoreOriginalProxySettings() | Improve this Doc View Source SetAsSystemHttpProxy(ExplicitProxyEndPoint) Set the given explicit end point as the default proxy server for current machine. Declaration public void SetAsSystemHttpProxy(ExplicitProxyEndPoint endPoint) Parameters Type Name Description ExplicitProxyEndPoint endPoint The explicit endpoint. | Improve this Doc View Source SetAsSystemHttpsProxy(ExplicitProxyEndPoint) Set the given explicit end point as the default proxy server for current machine. Declaration public void SetAsSystemHttpsProxy(ExplicitProxyEndPoint endPoint) Parameters Type Name Description ExplicitProxyEndPoint endPoint The explicit endpoint. | Improve this Doc View Source SetAsSystemProxy(ExplicitProxyEndPoint, ProxyProtocolType) Set the given explicit end point as the default proxy server for current machine. Declaration public void SetAsSystemProxy(ExplicitProxyEndPoint endPoint, ProxyProtocolType protocolType) Parameters Type Name Description ExplicitProxyEndPoint endPoint The explicit endpoint. ProxyProtocolType protocolType The proxy protocol type. | Improve this Doc View Source Start(Boolean) Start this proxy server instance. Declaration public void Start(bool changeSystemProxySettings = true) Parameters Type Name Description Boolean changeSystemProxySettings Whether or not clear any system proxy settings which is pointing to our own endpoint (causing a cycle). E.g due to ungracious proxy shutdown before. | Improve this Doc View Source Stop() Stop this proxy server instance. Declaration public void Stop() Events | Improve this Doc View Source AfterResponse Intercept after response event from server. Declaration public event AsyncEventHandler AfterResponse Event Type Type Description AsyncEventHandler < SessionEventArgs > | Improve this Doc View Source BeforeRequest Intercept request event to server. Declaration public event AsyncEventHandler BeforeRequest Event Type Type Description AsyncEventHandler < SessionEventArgs > | Improve this Doc View Source BeforeResponse Intercept response event from server. Declaration public event AsyncEventHandler BeforeResponse Event Type Type Description AsyncEventHandler < SessionEventArgs > | Improve this Doc View Source BeforeUpStreamConnectRequest Intercept connect request sent to upstream proxy. Declaration public event AsyncEventHandler BeforeUpStreamConnectRequest Event Type Type Description AsyncEventHandler < ConnectRequest > | Improve this Doc View Source ClientCertificateSelectionCallback Event to override client certificate selection during mutual SSL authentication. Declaration public event AsyncEventHandler ClientCertificateSelectionCallback Event Type Type Description AsyncEventHandler < CertificateSelectionEventArgs > | Improve this Doc View Source ClientConnectionCountChanged Event occurs when client connection count changed. Declaration public event EventHandler ClientConnectionCountChanged Event Type Type Description EventHandler | Improve this Doc View Source OnClientConnectionCreate Customize TcpClient used for client connection upon create. Declaration public event AsyncEventHandler OnClientConnectionCreate Event Type Type Description AsyncEventHandler < Socket > | Improve this Doc View Source OnServerConnectionCreate Customize TcpClient used for server connection upon create. Declaration public event AsyncEventHandler OnServerConnectionCreate Event Type Type Description AsyncEventHandler < Socket > | Improve this Doc View Source ServerCertificateValidationCallback Event to override the default verification logic of remote SSL certificate received during authentication. Declaration public event AsyncEventHandler ServerCertificateValidationCallback Event Type Type Description AsyncEventHandler < CertificateValidationEventArgs > | Improve this Doc View Source ServerConnectionCountChanged Event occurs when server connection count changed. Declaration public event EventHandler ServerConnectionCountChanged Event Type Type Description EventHandler Implements System.IDisposable"
},
"api/Titanium.Web.Proxy.StreamExtended.BufferPool.html": {
"href": "api/Titanium.Web.Proxy.StreamExtended.BufferPool.html",
@@ -347,7 +347,7 @@
"api/Titanium.Web.Proxy.StreamExtended.Models.SslExtension.html": {
"href": "api/Titanium.Web.Proxy.StreamExtended.Models.SslExtension.html",
"title": "Class SslExtension | Titanium Web Proxy",
- "keywords": "Class SslExtension The SSL extension information. Inheritance Object SslExtension 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.StreamExtended.Models Assembly : Titanium.Web.Proxy.dll Syntax public class SslExtension Constructors | Improve this Doc View Source SslExtension(Int32, String, String, Int32) Initializes a new instance of the SslExtension class. Declaration public SslExtension(int value, string name, string data, int position) Parameters Type Name Description Int32 value The value. String name The name. String data The data. Int32 position The position. Properties | Improve this Doc View Source Data Gets the data. Declaration public string Data { get; } Property Value Type Description String The data. | Improve this Doc View Source Name Gets the name. Declaration public string Name { get; } Property Value Type Description String The name. | Improve this Doc View Source Position Gets the position. Declaration public int Position { get; } Property Value Type Description Int32 The position. | Improve this Doc View Source Value Gets the value. Declaration public int Value { get; } Property Value Type Description Int32 The value."
+ "keywords": "Class SslExtension The SSL extension information. Inheritance Object SslExtension 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.StreamExtended.Models Assembly : Titanium.Web.Proxy.dll Syntax public class SslExtension Constructors | Improve this Doc View Source SslExtension(Int32, ReadOnlyMemory, Int32) Initializes a new instance of the SslExtension class. Declaration public SslExtension(int value, ReadOnlyMemory data, int position) Parameters Type Name Description Int32 value The value. ReadOnlyMemory < Byte > data The data. Int32 position The position. Properties | Improve this Doc View Source Data Gets the data. Declaration public string Data { get; } Property Value Type Description String The data. | Improve this Doc View Source Name Gets the name. Declaration public string Name { get; } Property Value Type Description String The name. | Improve this Doc View Source Position Gets the position. Declaration public int Position { get; } Property Value Type Description Int32 The position. | Improve this Doc View Source Value Gets the value. Declaration public int Value { get; } Property Value Type Description Int32 The value."
},
"api/Titanium.Web.Proxy.StreamExtended.Network.DataEventArgs.html": {
"href": "api/Titanium.Web.Proxy.StreamExtended.Network.DataEventArgs.html",
diff --git a/docs/xrefmap.yml b/docs/xrefmap.yml
index ab25e76a0..c6e07e566 100644
--- a/docs/xrefmap.yml
+++ b/docs/xrefmap.yml
@@ -4701,6 +4701,19 @@ references:
isSpec: "True"
fullName: Titanium.Web.Proxy.ProxyServer.Stop
nameWithType: ProxyServer.Stop
+- uid: Titanium.Web.Proxy.ProxyServer.SupportedServerSslProtocols
+ name: SupportedServerSslProtocols
+ href: api/Titanium.Web.Proxy.ProxyServer.html#Titanium_Web_Proxy_ProxyServer_SupportedServerSslProtocols
+ commentId: P:Titanium.Web.Proxy.ProxyServer.SupportedServerSslProtocols
+ fullName: Titanium.Web.Proxy.ProxyServer.SupportedServerSslProtocols
+ nameWithType: ProxyServer.SupportedServerSslProtocols
+- uid: Titanium.Web.Proxy.ProxyServer.SupportedServerSslProtocols*
+ name: SupportedServerSslProtocols
+ href: api/Titanium.Web.Proxy.ProxyServer.html#Titanium_Web_Proxy_ProxyServer_SupportedServerSslProtocols_
+ commentId: Overload:Titanium.Web.Proxy.ProxyServer.SupportedServerSslProtocols
+ isSpec: "True"
+ fullName: Titanium.Web.Proxy.ProxyServer.SupportedServerSslProtocols
+ nameWithType: ProxyServer.SupportedServerSslProtocols
- uid: Titanium.Web.Proxy.ProxyServer.SupportedSslProtocols
name: SupportedSslProtocols
href: api/Titanium.Web.Proxy.ProxyServer.html#Titanium_Web_Proxy_ProxyServer_SupportedSslProtocols
@@ -5019,12 +5032,15 @@ references:
commentId: T:Titanium.Web.Proxy.StreamExtended.Models.SslExtension
fullName: Titanium.Web.Proxy.StreamExtended.Models.SslExtension
nameWithType: SslExtension
-- uid: Titanium.Web.Proxy.StreamExtended.Models.SslExtension.#ctor(System.Int32,System.String,System.String,System.Int32)
- name: SslExtension(Int32, String, String, Int32)
- href: api/Titanium.Web.Proxy.StreamExtended.Models.SslExtension.html#Titanium_Web_Proxy_StreamExtended_Models_SslExtension__ctor_System_Int32_System_String_System_String_System_Int32_
- commentId: M:Titanium.Web.Proxy.StreamExtended.Models.SslExtension.#ctor(System.Int32,System.String,System.String,System.Int32)
- fullName: Titanium.Web.Proxy.StreamExtended.Models.SslExtension.SslExtension(System.Int32, System.String, System.String, System.Int32)
- nameWithType: SslExtension.SslExtension(Int32, String, String, Int32)
+- uid: Titanium.Web.Proxy.StreamExtended.Models.SslExtension.#ctor(System.Int32,System.ReadOnlyMemory{System.Byte},System.Int32)
+ name: SslExtension(Int32, ReadOnlyMemory, Int32)
+ href: api/Titanium.Web.Proxy.StreamExtended.Models.SslExtension.html#Titanium_Web_Proxy_StreamExtended_Models_SslExtension__ctor_System_Int32_System_ReadOnlyMemory_System_Byte__System_Int32_
+ commentId: M:Titanium.Web.Proxy.StreamExtended.Models.SslExtension.#ctor(System.Int32,System.ReadOnlyMemory{System.Byte},System.Int32)
+ name.vb: SslExtension(Int32, ReadOnlyMemory(Of Byte), Int32)
+ fullName: Titanium.Web.Proxy.StreamExtended.Models.SslExtension.SslExtension(System.Int32, System.ReadOnlyMemory, System.Int32)
+ fullName.vb: Titanium.Web.Proxy.StreamExtended.Models.SslExtension.SslExtension(System.Int32, System.ReadOnlyMemory(Of System.Byte), System.Int32)
+ nameWithType: SslExtension.SslExtension(Int32, ReadOnlyMemory, Int32)
+ nameWithType.vb: SslExtension.SslExtension(Int32, ReadOnlyMemory(Of Byte), Int32)
- uid: Titanium.Web.Proxy.StreamExtended.Models.SslExtension.#ctor*
name: SslExtension
href: api/Titanium.Web.Proxy.StreamExtended.Models.SslExtension.html#Titanium_Web_Proxy_StreamExtended_Models_SslExtension__ctor_