Commit 29de4d43 authored by justcoding121's avatar justcoding121

#355 Add an ExcludeTunnelConnect event to decide exlude/include per request

parent 1c6a2455
...@@ -285,13 +285,21 @@ namespace Titanium.Web.Proxy ...@@ -285,13 +285,21 @@ namespace Titanium.Web.Proxy
/// </summary> /// </summary>
public event EventHandler ServerConnectionCountChanged; public event EventHandler ServerConnectionCountChanged;
/// <summary>
/// Return true if this HTTP connect request should'nt be decrypted and instead be relayed
/// Valid only for explicit endpoints
/// </summary>
public Func<string, Task<bool>> ExcludeTunnelConnect;
/// <summary> /// <summary>
/// Intercept tunnel connect request /// Intercept tunnel connect request
/// Valid only for explicit endpoints
/// </summary> /// </summary>
public event AsyncEventHandler<TunnelConnectSessionEventArgs> TunnelConnectRequest; public event AsyncEventHandler<TunnelConnectSessionEventArgs> TunnelConnectRequest;
/// <summary> /// <summary>
/// Intercept tunnel connect response /// Intercept tunnel connect response
/// Valid only for explicit endpoints
/// </summary> /// </summary>
public event AsyncEventHandler<TunnelConnectSessionEventArgs> TunnelConnectResponse; public event AsyncEventHandler<TunnelConnectSessionEventArgs> TunnelConnectResponse;
...@@ -321,7 +329,6 @@ namespace Titanium.Web.Proxy ...@@ -321,7 +329,6 @@ namespace Titanium.Web.Proxy
/// </summary> /// </summary>
public event AsyncEventHandler<SessionEventArgs> BeforeResponse; public event AsyncEventHandler<SessionEventArgs> BeforeResponse;
/// <summary> /// <summary>
/// Callback for error events in proxy /// Callback for error events in proxy
/// </summary> /// </summary>
......
...@@ -77,6 +77,11 @@ namespace Titanium.Web.Proxy ...@@ -77,6 +77,11 @@ namespace Titanium.Web.Proxy
excluded = !endPoint.IncludedHttpsHostNameRegexList.Any(x => x.IsMatch(connectHostname)); excluded = !endPoint.IncludedHttpsHostNameRegexList.Any(x => x.IsMatch(connectHostname));
} }
if(ExcludeTunnelConnect!=null)
{
excluded = await ExcludeTunnelConnect(connectHostname);
}
connectRequest = new ConnectRequest connectRequest = new ConnectRequest
{ {
RequestUri = httpRemoteUri, RequestUri = httpRemoteUri,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment