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.
When EnableHttp3 is true (and
EnableHttp3 is enabled with DecryptSsl),
the endpoint also listens for HTTP/3 on the same IP:port over UDP and injects
Alt-Svc: h3=":PORT" into H1/H2 responses — reverse HTTPS with Alt-Svc advertisement.
Inherited Members
Namespace: Titanium.Web.Proxy.Models
Assembly: Titanium.Web.Proxy.dll
Syntax
public class TransparentProxyEndPoint : TransparentBaseProxyEndPoint
Constructors
| Edit this page View SourceTransparentProxyEndPoint(IPAddress, int, bool)
Initialize a new instance.
Declaration
public TransparentProxyEndPoint(IPAddress ipAddress, int port, bool decryptSsl = true)
Parameters
| Type | Name | Description |
|---|---|---|
| IPAddress | ipAddress | Listening Ip address. |
| int | port | Listening port. |
| bool | decryptSsl | Should we decrypt ssl? |
Properties
| Edit this page View SourceEnableHttp3
When true, also accept inbound HTTP/3 (QUIC) on the same IP:port as the
TCP listener and advertise it via Alt-Svc on H1/H2 responses. Requires
EnableHttp3 and DecryptSsl.
Default: false.
Experimental: Suppress TWP001 to opt in.
Declaration
[Experimental("TWP001")]
public bool EnableHttp3 { get; set; }
Property Value
| Type | Description |
|---|---|
| bool |
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 |
Overrides
| Edit this page View SourceHandshakeTimeout
Maximum time allowed for the QUIC handshake when EnableHttp3 is on. Default: 30 seconds.
Declaration
[Experimental("TWP001")]
public TimeSpan HandshakeTimeout { get; set; }
Property Value
| Type | Description |
|---|---|
| TimeSpan |
IdleTimeout
QUIC connection idle timeout when EnableHttp3 is on. Default: 60 seconds.
Declaration
[Experimental("TWP001")]
public TimeSpan IdleTimeout { get; set; }
Property Value
| Type | Description |
|---|---|
| TimeSpan |
MaxInboundBidirectionalStreams
Maximum concurrent inbound client-initiated bidirectional streams per QUIC connection when EnableHttp3 is on. Default: 100.
Declaration
[Experimental("TWP001")]
public int MaxInboundBidirectionalStreams { get; set; }
Property Value
| Type | Description |
|---|---|
| int |
MaxInboundUnidirectionalStreams
Maximum concurrent inbound client-initiated unidirectional streams per QUIC connection when EnableHttp3 is on. Values below 3 are clamped to 3. Default: 3.
Declaration
[Experimental("TWP001")]
public int MaxInboundUnidirectionalStreams { get; set; }
Property Value
| Type | Description |
|---|---|
| int |
Events
| Edit this page View SourceBeforeHttpAuthenticate
Before handling a cleartext (non-TLS) client session — including prior-knowledge HTTP/2 (h2c) — this event is fired so upstream protocol policy can be set without a ClientHello.
Declaration
public event AsyncEventHandler<BeforeHttpAuthenticateEventArgs>? BeforeHttpAuthenticate
Event Type
| Type | Description |
|---|---|
| AsyncEventHandler<BeforeHttpAuthenticateEventArgs> |
BeforeQuicAuthenticate
Fired before the QUIC TLS handshake completes for each inbound HTTP/3 connection when EnableHttp3 is on.
Declaration
[Experimental("TWP001")]
public event AsyncEventHandler<BeforeQuicAuthenticateEventArgs>? BeforeQuicAuthenticate
Event Type
| Type | Description |
|---|---|
| AsyncEventHandler<BeforeQuicAuthenticateEventArgs> |
BeforeSslAuthenticate
Before Ssl authentication this event is fired.
Declaration
public event AsyncEventHandler<BeforeSslAuthenticateEventArgs>? BeforeSslAuthenticate
Event Type
| Type | Description |
|---|---|
| AsyncEventHandler<BeforeSslAuthenticateEventArgs> |