Class SessionEventArgsBase
Holds info related to a single proxy session (single request/response exchange).
Under HTTP/2 and HTTP/3, many sessions share one client connection (one stream each);
ending a session ends that request/response exchange, not necessarily the connection.
Inheritance
SessionEventArgsBase
Assembly: Titanium.Web.Proxy.dll
Syntax
public abstract class SessionEventArgsBase : ProxyEventArgsBase, IDisposable
Fields
|
Edit this page
View Source
BufferPool
Declaration
protected readonly IBufferPool BufferPool
Field Value
Properties
|
Edit this page
View Source
ClientConnectionId
Identity of the inbound client transport connection. Multiplexed HTTP/2 and HTTP/3 streams
that share one client connection expose the same value. Values are process-wide monotonic
counters starting at 1 (wrapping back to 1 after MaxValue).
Declaration
public long ClientConnectionId { get; }
Property Value
|
Edit this page
View Source
ClientEndPoint
Declaration
[Obsolete("Use ClientRemoteEndPoint instead.")]
public IPEndPoint ClientEndPoint { get; }
Property Value
|
Edit this page
View Source
ClientLocalEndPoint
Declaration
public IPEndPoint ClientLocalEndPoint { get; }
Property Value
|
Edit this page
View Source
ClientRemoteEndPoint
Declaration
public IPEndPoint ClientRemoteEndPoint { get; }
Property Value
|
Edit this page
View Source
ConnectTimeout
Per-session override for ConnectTimeOutSeconds.
null uses the server default; Zero or negative
disables the connect timeout. Set in BeforeRequest to speed up or slow down the
TCP connect race for this individual request.
Declaration
public TimeSpan? ConnectTimeout { get; set; }
Property Value
|
Edit this page
View Source
CustomUpStreamProxy
Gets or sets the custom up stream proxy.
Declaration
public IExternalProxy? CustomUpStreamProxy { get; set; }
Property Value
|
Edit this page
View Source
CustomUpStreamProxyUsed
Are we using a custom upstream HTTP(S) proxy?
Declaration
public IExternalProxy? CustomUpStreamProxyUsed { get; }
Property Value
|
Edit this page
View Source
EnableWinAuth
Enable/disable Windows Authentication (NTLM/Kerberos) for the current session.
Declaration
public bool EnableWinAuth { get; set; }
Property Value
|
Edit this page
View Source
Exception
The last exception that happened.
Declaration
public Exception? Exception { get; }
Property Value
|
Edit this page
View Source
HttpClient
The web client used to communicate with server for this session.
Declaration
public HttpWebClient HttpClient { get; }
Property Value
|
Edit this page
View Source
IsHttps
Does this session uses SSL?
Declaration
public bool IsHttps { get; }
Property Value
|
Edit this page
View Source
IsSocks
Is this a SOCKS endpoint?
Declaration
public bool IsSocks { get; }
Property Value
|
Edit this page
View Source
IsTransparent
Is this a transparent endpoint (TCP or QUIC)?
Declaration
public bool IsTransparent { get; }
Property Value
|
Edit this page
View Source
LocalEndPoint
Declaration
[Obsolete("Use ProxyEndPoint instead.")]
public ProxyEndPoint LocalEndPoint { get; }
Property Value
|
Edit this page
View Source
Logger
The live logger for the ProxyServer that owns this session. Always reads the
server's current logger rather than a value snapshotted at session creation, so a logger
replaced via ApplyLoggingConfiguration() is picked up immediately.
Declaration
protected ILogger Logger { get; }
Property Value
|
Edit this page
View Source
ProxyEndPoint
Local endpoint via which we make the request.
Declaration
public ProxyEndPoint ProxyEndPoint { get; }
Property Value
|
Edit this page
View Source
ServerConnectionId
Identity of the upstream origin transport connection when one has been acquired for this
session; otherwise 0. Multiplexed HTTP/2 and HTTP/3 sessions that share one origin
connection expose the same value. This does not imply per-session pool ownership of that
connection. Values are process-wide monotonic counters starting at 1 (wrapping back to 1
after MaxValue).
Declaration
public long ServerConnectionId { get; }
Property Value
|
Edit this page
View Source
ServerIpAddress
Declaration
public IPAddress? ServerIpAddress { get; }
Property Value
|
Edit this page
View Source
ServerRemoteEndPoint
Physical peer of the established upstream connection (no second DNS lookup).
Available after the server connection is established (for example in
BeforeResponse), including multiplexed HTTP/2 and HTTP/3
sessions that bind identity without transferring HTTP/1.1 TCP ownership. When an
upstream HTTP/SOCKS proxy is used, this is the proxy hop endpoint, not the origin
server. null when no upstream connection exists (for example a
synthetic local response).
Declaration
public IPEndPoint? ServerRemoteEndPoint { get; }
Property Value
|
Edit this page
View Source
Timing
Declaration
public HttpRequestTiming? Timing { get; }
Property Value
|
Edit this page
View Source
UpstreamConnectionTiming
Structured timing for the upstream connection currently used by this session, populated only
when EnableRequestTimingCapture is enabled, including multiplexed
HTTP/2 and HTTP/3 sessions that bind identity without transferring HTTP/1.1 TCP ownership
(those sharing one origin connection expose the same instance). null when
timing capture is disabled or no upstream connection has been acquired yet (e.g. the request
was answered synthetically). See UpstreamConnectionTiming.
Declaration
public UpstreamConnectionTiming? UpstreamConnectionTiming { get; }
Property Value
|
Edit this page
View Source
UserData
Returns a user data for this request/response session which is
same as the user data of HttpClient.
Declaration
public object? UserData { get; set; }
Property Value
|
Edit this page
View Source
WebSession
Declaration
[Obsolete("Use HttpClient instead.")]
public HttpWebClient WebSession { get; }
Property Value
Methods
|
Edit this page
View Source
Dispose()
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Declaration
|
Edit this page
View Source
Dispose(bool)
Declaration
protected virtual void Dispose(bool disposing)
Parameters
| Type |
Name |
Description |
| bool |
disposing |
|
|
Edit this page
View Source
OnException(Exception)
Declaration
protected void OnException(Exception exception)
Parameters
|
Edit this page
View Source
TerminateSession()
Terminates the session abruptly by terminating client/server connections.
Declaration
public void TerminateSession()
Events
|
Edit this page
View Source
DataReceived
Fired when data is received within this session from client/server.
Declaration
public event EventHandler<DataEventArgs>? DataReceived
Event Type
|
Edit this page
View Source
DataSent
Fired when data is sent within this session to server/client.
Declaration
public event EventHandler<DataEventArgs>? DataSent
Event Type
Implements