Class ProxyLimits
Reference values for a handful of resource-limit defaults, kept here for documentation and cross-checking purposes.
Inherited Members
Namespace: Titanium.Web.Proxy
Assembly: Titanium.Web.Proxy.dll
Syntax
public static class ProxyLimits
Remarks
These fields are static readonly, not const, so that if a
later release changes one of these reference values, a consumer that has not recompiled still
picks up the new value from the referenced Titanium.Web.Proxy.dll at load time rather than
keeping a stale value inlined by the compiler into their own assembly.
These fields cannot be "overridden by assigning them before starting the proxy": they are
readonly, so external code cannot assign to them at all (that would be a
compile error). Only DefaultMaxChunkSizeBytes is actually read by any live code
path (by ChunkSizeParser.TryParse's call sites in HttpStream/LimitedStream);
every other field below documents a value that is independently hardcoded as the real default on
the corresponding ProxyServer (or, for authentication rounds, WinAuthHandler)
property, and is not consulted by that property's own default or by any enforcement path. Treat
the fields below other than DefaultMaxChunkSizeBytes as documentation of what each
corresponding property's shipped default currently is, not as the mechanism that produces it: to
change a limit at runtime, set the actual ProxyServer property (e.g.
ProxyServer.MaxBufferedBodyBytes), never the field here.
Fields
| Edit this page View SourceDefaultMaxAuthRounds
Reference value only - see the type-level remarks. Matches
WinAuthHandler.MaxAuthChallengeRounds: maximum number of authentication challenge
rounds allowed per request (e.g. NTLM three-way handshake counts as one round; additional
401/407 responses count separately). The two values are independently maintained, not linked.
Default: 3.
Declaration
public static readonly int DefaultMaxAuthRounds
Field Value
| Type | Description |
|---|---|
| int |
DefaultMaxBufferedBodyBytes
Reference value only - see the type-level remarks. Matches the current default of
ProxyServer.MaxBufferedBodyBytes: maximum buffered request or response body size for
proxied exchanges where full buffering is required (body mutation, authentication retry,
etc.).
Default: 4 MiB.
Declaration
public static readonly long DefaultMaxBufferedBodyBytes
Field Value
| Type | Description |
|---|---|
| long |
DefaultMaxChunkSizeBytes
Maximum accepted value of a single HTTP/1 chunk-size line (RFC 9112 ยง7.1), in bytes.
The chunk-size grammar itself (1*HEXDIG) has no length ceiling, so this is a proxy-owned
safety bound rather than a protocol requirement: it exists to reject the two's-complement chunk-
size wrap (an attacker-supplied value like "ffffffff" must not decode to a small/negative sentinel)
and to avoid ever attempting to allocate or forward a chunk of unbounded size. Set high enough
that no legitimate chunk from real-world traffic should reach it.
Unlike every other field on this type, this one is actually read live, by every
ChunkSizeParser.TryParse call site in HttpStream and LimitedStream.
Default: 1 GiB.
Declaration
public static readonly long DefaultMaxChunkSizeBytes
Field Value
| Type | Description |
|---|---|
| long |
DefaultMaxDecodedHeaderListBytes
Reference value only - see the type-level remarks. Matches the current default of
ProxyServer.MaxDecodedHeaderListBytes: maximum total decoded HTTP/2 header list size
(sum of name + value + 32 per field). Streams with header lists exceeding that property's
configured value are rejected with RST_STREAM(ENHANCE_YOUR_CALM).
Default: 64 KiB.
Declaration
public static readonly int DefaultMaxDecodedHeaderListBytes
Field Value
| Type | Description |
|---|---|
| int |
DefaultMaxWebSocketFramePayloadBytes
Reference value only - see the type-level remarks. Matches the current default of
ProxyServer.MaxWebSocketFramePayloadBytes: maximum WebSocket frame payload size the
proxy will accept during frame-level interception (validated against the declared length
before any payload is buffered). Raw relay (no interception) is not subject to this limit.
Default: 16 MiB.
Declaration
public static readonly int DefaultMaxWebSocketFramePayloadBytes
Field Value
| Type | Description |
|---|---|
| int |
DefaultMaxWebSocketMessageBytes
Reference value only - see the type-level remarks. Unlike the other fields on this type, this
one does not correspond to any enforced ProxyServer property today: there is no
cumulative-reassembled-message-size cap on the WebSocket path, only the per-frame
DefaultMaxWebSocketFramePayloadBytes/MaxWebSocketFramePayloadBytes limit.
This value is retained as a documented target for that still-unimplemented cumulative budget.
Default: 64 MiB.
Declaration
public static readonly long DefaultMaxWebSocketMessageBytes
Field Value
| Type | Description |
|---|---|
| long |
DefaultViaPseudonym
Unused legacy field. ProxyServer.ViaHeaderPseudonym defaults to
"titanium-web-proxy" (not empty) and does not read this field; nothing in the codebase
references it. Retained only so removing it is not itself an undocumented breaking change;
do not treat it as authoritative for the real default.
Declaration
public static readonly string DefaultViaPseudonym
Field Value
| Type | Description |
|---|---|
| string |