Http2 Module
Types and nested modules
Functions and values
| Function or value | Description |
Full Usage:
applyInitialWindowSizeChange window oldInitial newInitial
Parameters:
FlowControlWindow
oldInitial : int32
newInitial : int32
Returns: Result<unit, ErrorCode>
|
|
Full Usage:
checkEndianness b
Parameters:
byte[]
Returns: byte[]
|
|
Full Usage:
connectionPreface
Returns: string
|
|
Full Usage:
defaultMaxHeaderBlockReassemblyBytes
Returns: int32
|
Hard cap on the cumulative *compressed* bytes of one header block (HEADERS + any CONTINUATION frames). HPACK can be denser than the uncompressed form (the whole point of indexed representations) so this is set to the decoded cap; combined with the per-block decoded check it leaves no path for an unbounded attacker accumulation.
|
Full Usage:
defaultMaxHeaderListSize
Returns: int32
|
|
|
|
|
|
Full Usage:
encodeFramePayload encodeInfo _arg1
Parameters:
EncodeInfo
_arg1 : FramePayload
Returns: FrameHeader * byte[] list
|
|
Full Usage:
encodeHpackHeaderBlock dyntbl headers
Parameters:
DynamicTable
headers : (string * string) list
Returns: byte[]
|
|
|
|
Full Usage:
estimateHpackBufferSize headers
Parameters:
(string * string) list
Returns: int
|
Estimate a safe upper bound for the encoded byte length of `headers`. HPACK's worst case for a Linear-without-Huffman encoding of a single (name,value) pair is `1` (type byte) + `5` (length prefix for name) + `name` + `5` (length prefix for value) + `value` bytes; we round up to `name + value + 32` per header (matching `headerSizeMagicNumber`) and double that to leave headroom for any table-size-update prefix the encoder may emit on the first call.
|
|
Translate a list of decoded HPACK headers into the shape expected by `HttpRequest`: split the pseudo-headers (`:method`, `:path`, `:scheme`, `:authority`) out of the regular header list per RFC 7540 §8.1.2.3 and validate that the mandatory request pseudo-headers are present. Returns `Ok (method, path, scheme, authority, regularHeaders)` on success, or `Result.Error ProtocolError` on a missing or repeated pseudo-header.
|
Full Usage:
feedContinuation acc h fragment
Parameters:
HeaderBlockReassembly
h : FrameHeader
fragment : byte[]
Returns: ReassemblyResult
|
|
|
|
|
|
Full Usage:
get31Bit data
Parameters:
byte[]
Returns: int
|
|
Full Usage:
increment window delta
Parameters:
FlowControlWindow
delta : int32
Returns: Result<unit, ErrorCode>
|
|
Full Usage:
isPriority bs
Parameters:
byte
Returns: bool
|
|
Full Usage:
maxFlowControlWindow
Returns: int
|
|
Full Usage:
maxNumbers size
Parameters:
int
Returns: int
|
|
Full Usage:
newDynamicRevIndex arg1
Parameters:
'a
Returns: Dictionary<HeaderValue, HIndex> array
|
|
Full Usage:
newDynamicTable maxsize info
Parameters:
int
info : CodeInfo
Returns: DynamicTable
|
|
Full Usage:
newDynamicTableForDecoding maxsiz huftmpsiz
Parameters:
int
huftmpsiz : int
Returns: DynamicTable
|
|
|
|
|
|
|
|
Full Usage:
newStreamData peerInitialWindow localInitialWindow
Parameters:
int32
localInitialWindow : int32
Returns: StreamData
|
|
|
|
Full Usage:
parseContinuation header payload
Parameters:
FrameHeader
payload : byte[]
Returns: FramePayload
|
|
Full Usage:
parseData header payload
Parameters:
FrameHeader
payload : byte[]
Returns: FramePayload
|
|
|
|
Full Usage:
parseGoAway header payload
Parameters:
FrameHeader
payload : byte[]
Returns: FramePayload
|
|
Full Usage:
parseHeaders header payload
Parameters:
FrameHeader
payload : byte[]
Returns: FramePayload
|
|
Full Usage:
parsePing header payload
Parameters:
FrameHeader
payload : byte[]
Returns: FramePayload
|
|
Full Usage:
parsePriority header payload
Parameters:
FrameHeader
payload : byte[]
Returns: FramePayload
|
|
Full Usage:
parsePushPromise header payload
Parameters:
FrameHeader
payload : byte[]
Returns: FramePayload
|
|
Full Usage:
parseRstStream header payload
Parameters:
FrameHeader
payload : byte[]
Returns: FramePayload
|
|
Full Usage:
parseSettings header payload
Parameters:
FrameHeader
payload : byte[]
Returns: FramePayload
|
|
Full Usage:
parseWindowUpdate header payload
Parameters:
FrameHeader
payload : byte[]
Returns: FramePayload
|
|
|
|
Full Usage:
poke16 arr i w
Parameters:
byte array
i : int
w : int
|
|
Full Usage:
poke32 arr i w
Parameters:
byte array
i : int
w : int32
|
|
Full Usage:
priority header payload
Parameters:
FrameHeader
payload : byte[]
Returns: Priority option
|
|
Full Usage:
readBytes facade n
Parameters:
ConnectionFacade
n : int
Returns: SocketOp<byte[]>
|
Read exactly `n` bytes from the connection's pipe reader into a fresh array. Replaces the legacy `ConnectionFacade.readBytesToArray` helper that no longer exists on the current facade. Used by the HTTP/2 frame reader. Returns an `Error` if fewer than `n` bytes are available before the pipe stops yielding data (e.g. peer closed the connection mid-frame), since short reads on HTTP/2 frames are protocol errors per RFC 7540 §5.4.1.
|
Full Usage:
readFrame facade
Parameters:
ConnectionFacade
Returns: SocketOp<FrameHeader * FramePayload>
|
|
Full Usage:
readFrameHeader facade
Parameters:
ConnectionFacade
Returns: SocketOp<FrameHeader>
|
|
Full Usage:
readRawFrame facade
Parameters:
ConnectionFacade
Returns: SocketOp<FrameHeader * byte[]>
|
|
Full Usage:
removePadding header payload
Parameters:
FrameHeader
payload : byte[]
Returns: 'a array
|
|
Full Usage:
setAck x
Parameters:
byte
Returns: byte
|
|
|
|
Full Usage:
setEndHeader x
Parameters:
byte
Returns: byte
|
|
Full Usage:
setEndStream x
Parameters:
byte
Returns: byte
|
|
|
|
|
|
|
|
|
|
|
|
Full Usage:
setPadded x
Parameters:
byte
Returns: byte
|
|
Full Usage:
setPriority x
Parameters:
byte
Returns: byte
|
|
Full Usage:
startHeaderBlock h fragment isPushPromise endStream
Parameters:
FrameHeader
fragment : byte[]
isPushPromise : bool
endStream : bool
Returns: ReassemblyResult
|
|
Full Usage:
testAck x
Parameters:
byte
Returns: bool
|
|
Full Usage:
testEndHeader x
Parameters:
byte
Returns: bool
|
|
Full Usage:
testEndHeaderFlag flags
Parameters:
byte
Returns: bool
|
|
Full Usage:
testEndStream x
Parameters:
byte
Returns: bool
|
|
Full Usage:
testPadded x
Parameters:
byte
Returns: bool
|
|
Full Usage:
testPriority x
Parameters:
byte
Returns: bool
|
|
|
|
Full Usage:
transitionStream state event
Parameters:
StreamState
event : StreamEvent
Returns: Result<StreamState, ErrorCode>
|
|
|
Attempt to consume `n` octets from the window. Returns `true` on success (the window was decremented) or `false` if the window is too small. Callers that get `false` must block / queue the data until WINDOW_UPDATE arrives. A negative `n` is treated as a caller bug and returns `false` without mutating the window. Frame-level validation (parseFrameHeader, etc.) should already have rejected anything that could produce a negative length; this is defence in depth.
|
Full Usage:
validateFrame header rawLen maxFrameSize isIdleStream
Parameters:
FrameHeader
rawLen : int
maxFrameSize : int32
isIdleStream : int32 -> bool
Returns: FrameValidation
|
|
|
Validate the individual entries of a SETTINGS payload against the per-identifier rules in RFC 7540 §6.5.2. The decoded `parseSettings` helper discards out-of-range values silently (e.g. coerces SETTINGS_ENABLE_PUSH = 2 to `false`), so this validator works against the raw payload bytes before parsing.
|
Full Usage:
writeFrame encInfo payload t
Parameters:
EncodeInfo
payload : FramePayload
t : ITransport
Returns: SocketOp<unit>
|
|
|
|