Skip to content
This repository was archived by the owner on Jul 9, 2023. It is now read-only.

Commit f56ed3f

Browse files
committed
Merge branch 'develop' of https://github.com/justcoding121/titanium-web-proxy into develop
2 parents ccdaa96 + 4e098a3 commit f56ed3f

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

src/Titanium.Web.Proxy/Network/TcpConnection/TcpConnectionFactory.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -538,6 +538,8 @@ internal Task<TcpServerConnection> GetServerConnection(ProxyServer proxyServer,
538538
connectRequest.Headers.AddHeader(HttpHeader.GetProxyAuthorizationHeader(externalProxy.UserName, externalProxy.Password));
539539
}
540540

541+
await proxyServer.onBeforeUpStreamConnectRequest(connectRequest);
542+
541543
await stream.WriteRequestAsync(connectRequest, cancellationToken);
542544

543545
var httpStatus = await stream.ReadResponseStatus(cancellationToken);

src/Titanium.Web.Proxy/ProxyServer.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
using Titanium.Web.Proxy.Extensions;
1212
using Titanium.Web.Proxy.Helpers;
1313
using Titanium.Web.Proxy.Helpers.WinHttp;
14+
using Titanium.Web.Proxy.Http;
1415
using Titanium.Web.Proxy.Models;
1516
using Titanium.Web.Proxy.Network;
1617
using Titanium.Web.Proxy.Network.Tcp;
@@ -387,6 +388,11 @@ public ExceptionHandler ExceptionFunc
387388
/// </summary>
388389
public event AsyncEventHandler<Socket>? OnServerConnectionCreate;
389390

391+
/// <summary>
392+
/// Intercept connect request sent to upstream proxy.
393+
/// </summary>
394+
public event AsyncEventHandler<ConnectRequest>? BeforeUpStreamConnectRequest;
395+
390396
/// <summary>
391397
/// Customize the minimum ThreadPool size (increase it on a server)
392398
/// </summary>

src/Titanium.Web.Proxy/RequestHandler.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,19 @@ private async Task onBeforeRequest(SessionEventArgs args)
406406
}
407407
}
408408

409+
/// <summary>
410+
/// Invoke before request handler if it is set.
411+
/// </summary>
412+
/// <param name="request">The COONECT request.</param>
413+
/// <returns></returns>
414+
internal async Task onBeforeUpStreamConnectRequest(ConnectRequest request)
415+
{
416+
if (BeforeUpStreamConnectRequest != null)
417+
{
418+
await BeforeUpStreamConnectRequest.InvokeAsync(this, request, ExceptionFunc);
419+
}
420+
}
421+
409422
#if DEBUG
410423
internal bool ShouldCallBeforeRequestBodyWrite()
411424
{

0 commit comments

Comments
 (0)